[EXCEL] Copier colones de plusieurs onglets

Bonjour à vous,

je me trouve face à un petit probleme: je souhaiterai copier la premiere colonne de tous les onglets de mon classeur, dans la première colonne du premier onglet.
La seule facon que j'ai trouvé pour l'instant, c'est de nommer chacun des onglets dans le code. C'est pas terrible terrible, car il y a environ une vintaine d'onlget, je me vois mal recopier chaque nom.
J'ai remarqué dans l'éditeur VB que tous les onglets ont un double nom: celui par defaut et entre parenthese celui qu'on leur donne. Je dis donc "chouette, jvais pouvoir utiliser le nom par defaut, moins le caractere numerique, que je fais incrémenter."

Sub COPY_REF()

Dim f1 As Worksheet
Set f1 = ThisWorkbook.Worksheets("REF")
Dim onglet As String
Dim n As Integer
n = 1
Dim f2 As Worksheet
Dim i As Integer
i = 1
Dim j As Integer
j = 1

For j = 1 To n
onglet = "feuil" & n
Set f2 = ThisWorkbook.Worksheets(onglet)

While Not f2.Cells(i, 1) = ""
f1.Cells(i, 1) = f2.Cells(i, 1)
i = i + 1
Wend

n = n + 1

Next j

End Sub

mais il me dit "L'indice n'appartient pas à la sélection" au niveau de la ligne en gras Set f2 = ThisWorkbook.Worksheets("onglet").
Et pour cause, il n'y a pas d'onlget nommé "onglet" dans le classeur. Ce que je souhaite, c'est que les onglets soient selectionnés les uns à la suite des autres pour que la copie puisse s'effectuer.
Je pensais que "onglet" contenait feuil+n soit feuil1 et ainsi de suite. Visiblement, il y une boulette que je ne sais enlever.

Est-ce que vous pouvez jetter un oeil et me donner vos avis svp ?
Configuration: Windows XP
Firefox 2.0.0.9

6 réponses

  1. Bonjour,

    Essaye ceci :

     Set f2 = ThisWorkbook.Worksheets(j) 
    0
    1. Bonjour Shaboo,

      Merci de ta rapidité de réponse, ca fait plaisir.

      Il n'y a plus d'erreur de compilation, par contre, ca fait rien du tout... j'ai du me planter dans l'algo... je regarde ca, je te tiens au courant
      0
      1. rah! pas glop! en faisant un genre de pas à pas (touche F8), lorsque je pose le curseur sur les variables, une info bulle me donne leur valeur.
        et la, c'est le drame! toutes les variables sont vides ! je ne comprend pas pourquoi il m'affiche une info bulle me disant que n=0, alors que lors de la creation, il est bien spécifié qu'elle est = 1 !
        what's the trouble, dude ?!
        0
        1. Peux tu mettre ton fichier en ligne stp ...
          0
        2. @ShaBoovolontiers...
          comment qu'on fait ? :)
          0
        3. Dans le fichier que tu m'as envoyé :

          Quels sont les colonnes que tu veux copier dans la feuille "REF" ?

          Quels sont les feuilles que tu veux scanner ?
          0
      2. hop! voila qui est fait, a cette adresse : https://www.cjoint.com/?lploBZYH2n

        au passage, j'ai modifié ceci
        Dim n As Integer
        n = 2

        avant il etait n=1

        avec ce changement, la macro a juste copié les 2 premieres lignes du 1er onglet

        PS: le fichier mis en ligne ne contient pas tous les onglets, et les onglets eux meme n'ont que la colonne souhaitée, pour des raison de confidentialité que tu comprendras ;p
        0
        1. Ton fichier est en MP
          0
        2. @ShaBoobien le merci !

          c'est effectivement ce que je comptais faire, mais en plus propre :)
          il ne me reste plus qu'à nettoyer mon fichier pour enlever les cellules vides et relancer tout le bazar

          merci encore pour ton suivi si reactif ! j'espere la prochaine ca sera moi qui te depatouillerai
          bonne aprem' !
          0
      3. oula! pause dejeuner un peu longue :P

        alors, dans une colonne de l'onglet REF, je souhaiterai avoir le contenu de la 1ere colonne de chaque onglet.

        en fait je me suis rendu compte que le fichier tel quel est un peu difficile a utiliser. La modif que j'ai fait m'a permis de lancer la copie des ceulles, et biensur, il s'est arreté des qu'il a vu une cellule non remplie, ce qui est le cas des la cellule A3 du 1er onglet...
        groumpf!
        0
        1. nettoyage du code:
          gerer les feuilles par indice et non par nom
          0