Excel copier/coller macro - Page 2

  • Votes
  • Date
  • Date décroissante
  1. dans la colonne A des feuille 1,2,3 il y a un certains nombre de cellule remplies et je voudrais copier chaque cellule dans la feuil 4 les une apres les autre dans une seule colonne A
    donc test dans feuille 1 copier chaque cellule dans feuil4 jusqua cellule vide si vide passer dans feuille 2 copier toutes cellule remplies si vide passer feuille 3 etc
    1. Contributeur
      bon, j comprend pas tout.. mais voici les fonctions qui peuvent t'aider :

      for NumFeuille =1 to 3
      ligne=1
      set ValCherche = Worksheets(NumFeuille).Cells(ligne, 1)
      Do While ValCherche <> ""

      Worksheets(4).Cells(ligne, 1) = Worksheets(NumFeuille).Cells(ligne, 1)

      ligne=ligne+1
      set ValCherche = Worksheets(NumFeuille).Cells(ligne, 1)

      loop

      next
      1. je suis désolé mais je ne comprends pas vraiment,tous simplement car mon niveau ........
        j'arretes de vous importuner
        merci
        1. Contributeur
          Mais nan!! revient :p

          Il faut se prendre un peu la tete pour comprendre.. apres tu le sera, et tu comprendra comment faire...
      2. j'ai 13 feuil + une feuille temp
        je voudrais copier a2:a32 de chacune des 13 feuilles vers la colonne A de la feuil temp les une en dessous des autres
        mais avec un test disant de recopier seulement les cellules contenant une valeur afin que dans la feuil temp il ni ai pas de cellule vides entre les valeur car dans chacune des 13 feuil dans la plage a2:a32 toutes les cellules ne sont pas pleines
        1. Contributeur
          as tu des cellules vides dans une feuille comme :
          A1=a, A2=b, A4=c,A5=d

          ou sont elles vraiment toutes à la suite ?
          1. dans chacune des 13 feuilles il y aura peut etre des vides a1=2 a2=3 a3=vide a4=8 etc mais dans la feuille temp toutes doivent s'inscrire les une apres les autre dans la colonne A et sans aucune cellule vide
            1. si,
              dans chacune des 13 feuille comme je dois rentrer les données dans la plage a2:a32 il y a les meme cellules remplie pas avec les meme valeur
              feuil1 a1=5 a2=3 a3=vide a4=6
              feuil2 a1=2 a2=vide a3=vide a4=9

              etc
              en fait je rentre des montants dans les treize feuilles et dans temp je dois toutes les inscrire dans une seule colonne a1:a......................
              1. Contributeur
                donc tu veux que de :
                feuil1 a1=5 a2=3 a3=vide a4=6
                feuil2 a1=2 a2=vide a3=vide a4=9

                ca te mette dans la feuille temp :

                a1=5 a2=3 a3=6 a4=2 a5=9 c'est ca?
                1. Contributeur
                  ah.. on y arrive :)

                  Ca donnerais ca ;) :

                  NumLigneTemp = 1 'Numero de la ligne de la colonne A dans Temp
                  For feuille = 1 To Sheets.Count
                  With Worksheets(feuille)
                  If .Name <> "Temp" Then
                  .Activate
                  For NumLigne = 2 To 36
                  If .Cells(NumLigne, 1) <> "" Then
                  Worksheets("Temp").Cells(NumLigneTemp, 1) = .Cells(NumLigne, 1)
                  NumLigneTemp = NumLigneTemp + 1
                  End If
                  Next
                  End If
                  End With
                  Next
                  1. je commence a voir,

                    mais visiblement si dans le classeur les feuilles ne sont pas temp alors ...
                    If .Name <> "Temp" Then
                    mais le classeur contient au moins 17 feuilles seule 13 sont concernés peut ont dire les 13 premieres feuilles
                    1. Contributeur
                      Non, "temp" est le nom de la feuille où il met les données.. mais tu peux l appelé comme tu veux, il faut juste changer le nom de la feuille destination ici

                      If .Name <> "Temp" Then
                      Worksheets("Temp").Cells(NumLigneTemp, 1) = .Cells(NumLigne, 1)

                      Apres tes autres feuilles (sopurces) peuvent s appeler comme tu veux et pas forcement avec un nom qui se vu car avec:
                      For feuille = 1 To Sheets.Count
                      With Worksheets(feuille)

                      la variable feuille prend le numéro d'une feuille, et je fais référence à cette feuille source via son numéro et non son nom ;)
                      Précédent
                      • 1
                      • 2