Problème de sélection de feuille excel

Problème de sélection de feuille excel - VB/VBA/VBS - Programmation

Marsh Posté le 11-04-2006 à 11:32:17    

Bonjour,
 
J’ai un classeur Excel qui contient plusieurs feuilles, le nombre n’est pas fixe. J’aimerai copier une zone de chacune de ces feuilles dans une dernière (qui est dans le même classeur).
(Je préviens que je ne suis pas une star en programmation)
[size=2]  
[/size]Je récupère le nombre de feuilles par Sheets.count. J’appelle cette variable Nbfeuil
J’ai besoin de sélectionner mes feuilles sources de données une par une. J’aimerai bien faire une boucle du genre :
Pour i = 1 à (Nbfeuil – 1) faire
‘ – 1 c’est parce que ma dernière feuillé c’est celle où je copie mes données.
[size=2]            Copier la zone qui va bien de la feuille 1
[/size][size=2]            Coller dans la feuille nombre de feuille
[/size]Next
[size=2]  
[/size]Ca donne ça :
[size=2]    a=0
[/size][size=2]    For i = 1 To (nbfeuil - 1) Step 1
[/size][size=2]        Sheets(i).Rows(6, a).Copy
[/size][size=2]        Sheets(nbfeuil).Rows(6 + a).Paste
[/size][size=2]        a=a+a
[/size][size=2]    Next
[/size][size=2]  
[/size]Mon truc avec la variable a c’est parce que normalement je récupère la longueur de la zone dans une cellule de chaque feuille.
Je reçois comme message d’erreur : Erreur d’exécution 1004, Erreur définie par l’application ou par l’objet.
Je ne sais si c’est un problème avec l’adressage de mes feuilles sheets(_) ou si c’est mon utilisation du mode de copie ou autre chose.
Je crains que ce soit vraiment tout bête mais. Je vois pas.
J'espère avoir été clair?
[size=2]  
[/size]Merci pour votre aide.
[size=2]  
[/size]Tyl
 

Reply

Marsh Posté le 11-04-2006 à 11:32:17   

Reply

Marsh Posté le 11-04-2006 à 11:37:22    

désolé pour les balises... J'avais tapé sou word, je referait plus.
 
Tyl

Reply

Marsh Posté le 11-04-2006 à 22:54:10    

Je pense que l'erreur vient de cette ligne :

Sheets(i).Rows(6, a).Copy


qui doit s'écrire :

Sheets(i).Rows(6 + a).Copy


Cordialement
Epéna

Reply

Marsh Posté le 12-04-2006 à 00:53:32    

bonjour,
Sur le fond l'erreur vient bien de là mais de plus, il y a un problème sur la valeur de "a" :  
comme tu le présentes, a = 0 pendant toute ta procédure. (0 + 0 = 0 ! )
Quand tu donnes du code, tu recopies directement (et intégralement) ton code depuis VBA (par Copier/Coller), parce que s'il y a des erreurs de codes + des erreurs de traduction + des erreurs de frappe ou/et des oublis, on risque de comprendre ce que tu n'as pas voulu dire et de te répondre quelque chose que tu ne comprendras pas !
 
Il n'y a rien qui ressemble plus à une erreur de code qu'un code incomplet...
Alors autant écrire en braille...  :D  
A+


---------------
roger
Reply

Marsh Posté le 12-04-2006 à 08:37:46    

Merci pour les réponses,
 
Je vais essayer de ne plus écrire en langage cunéiforme et d'être plus clair.
 
D'abord voilà le copier/coller de mon code:
 
    Dim nbfeuil As Integer
    Dim i As Integer
    Dim pas As Integer
     
    nbfeuil = Sheets.Count
    pas = 0
     
    For i = 1 To (nbfeuil - 1) Step 1
        Sheets(i).Rows(6, Sheets(i).Cells(3, 1)).Copy
        Sheets(nbfeuil).Rows(6, Sheets(i).Cells(3, 1) + pas).Paste
        pas = Sheets(i).Cells(3, 1) + pas
    Next
 
Dans chacune des feuilles il y a dans la cellule (3,1) le numéro de le dernière ligne du tableau de donnée.
C'est pour ça que j'avais écrit rows(6, sheets(i).cells(3,1)).copy  
Je voudrais copier la zone de la ligne 6 à la ligne sheets(i).cells(3,1)
 
J'espère être plus clair.
 
Lorsque j'écris Sheets(i).Rows(6 + Sheets(i).Cells(3, 1)).Copy il ne me met plus erreur 100' défine par l'application ou par l'objet mais il copie une seule ligne et pas la plage de ligne.
De plus, lorsque j'écris Sheets(nbfeuil).Rows(6 + Sheets(i).Cells(3, 1) + pas).Paste j'obtiens une erreur 438 propriété ou méthode non gérée par l'objet.
 
J'ai essayé de remplacer la sélection de lignes par une plage range mais même problème.
 
Est-ce que j'aurai pas un soucis au niveau de paste, par rapport à la taille de la zone copiée et celle collée?
 
Toujours est-il que j'ai toujours un problème et qu'un peu d'aide me serait encore d'une grande utilité.
 
Merci encore.
 
Yann

Reply

Sujets relatifs:

Leave a Replay

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