Problème d'utilisation des objets définis par l'utilisateur

Problème d'utilisation des objets définis par l'utilisateur - VB/VBA/VBS - Programmation

Marsh Posté le 23-01-2008 à 12:59:55    

Bonjours à tous.
 
Après avoir lu le sujet "Règle du forum de programmation", je vais essayer de poser ma question dans les règles de l'art.
 
Tout d'abord je suis en train de faire des macros pour excel.
 
Je travail dans un classeur, et je veux comparer des informations qui sont dans deux feuilles et mettre le résultat de cette comparaison dans une autre feuille.
 
Je commence don par créer une nouvelle feuille, et pour être sur de travailler toujours là où je veux, je créer différents objets :  
 

Code :
  1. Set book = ActiveWorkbook
  2.     book.Worksheets.Add
  3.     Set result = book.Worksheets(1)
  4.     result.Name = "Résultat"
  5.     Set PDP = book.Worksheets(2)
  6.     Set PIC = book.Worksheets(3)
  7.     PIC.Activate.Range("A65536" ).Select


 
Mon problème est que lorsque j'essaye d'utiliser les objets worksheet, je rencontre un problème.
 
Par exemple, je n'arrive pas à faire la chose suivante :  

Code :
  1. book.PIC.Range("A1", "C" & fin).Copy


fin étant la valeur de la dernière ligne du tableau.
 
Que n'aurai-je pas compris?
Comment puis-je procéder?
 
Merci bien

Reply

Marsh Posté le 23-01-2008 à 12:59:55   

Reply

Marsh Posté le 24-01-2008 à 08:51:30    

Ce m'essage n'est pas tant pour faire un up que pour avertir que je suis disponible pour donner toutes sortes d'informations complémentaires.
 
Si vous avez ne serait-ce qu'un début de réponse, ou même une idée quelquonque, n'hésitez pas car je n'arrive vraiment pas à cerner le problème.
 
Je vous remercie.

Reply

Marsh Posté le 24-01-2008 à 09:28:41    

Déjà PIC.Activate.Range("A65536" ).Select ne marchera pas,sinon bestialement adapté pour test


Option Explicit
 
Sub Tst()
Dim Book As Workbook
Dim Result As Worksheet
Dim PDP As Worksheet
Dim PIC As Worksheet
Dim Fin As Long
 
    Set Book = ActiveWorkbook
    Book.Worksheets.Add
    Set Result = Book.Worksheets(1)
    Result.Name = "Résultat"
    Set PDP = Book.Worksheets(2)
    Set PIC = Book.Worksheets(3)
     
    PIC.Activate
    PIC.Range("A65536" ).Select
     
    Fin = 12
    Book.PIC.Range("A1", "C" & Fin).Copy
End Sub

Reply

Marsh Posté le 24-01-2008 à 18:39:11    

Merci beaucoup kiki29, grâce à toi j'ai compris d'où venait mon erreur.
Je faisais une confusion entre select et activate. Ce que je cherchai à faire au final, c'est quelque chose comme ça :


    fin = PIC.Range("A65536" ).End(xlUp).Row
    PIC.Range("A1", "C" & fin).Copy result.Range("B1" )


 
Merci bien en tout cas.


Message édité par Henri Demolins le 24-01-2008 à 18:40:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed