Coller à la suite

Bonjour,

Je cherche par macro à coller des lignes provenant d'une feuille sur une autre feuille sur la premiere cellule libre.
Macro utilisée :
Sub multiple()

Dim i As Integer
i = 6
Cells(i, 2).Select
While Cells(i, 2).Value <> ""
i = i + 1
Wend

Sheets("Saisie_multiple").Select
Range("A21:M31").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Journal").Select
Range("C5").Select
Cells(i, 3).Select
ActiveSheet.Paste
End Sub
Le premier passage marche au second elle copie sur l'existant.
J'ai certainement fait une erreur mais ou.
Merci d'avance

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Si je ne me trompe pas, au moment où tu lui demande de coller ta sélection, la valeur de i est (la valeur de la dernière cellule non vide +1). le problème est que tu ne fais pas de boucle sur la zone où copier ta sélection donc la valeur de "i" est toujours la même...
    1. Bonjour Eric,
      Je n'y comprends rien.
      J'ai créé deux feuilles saisie et saisie multiple.
      Ma macro fonctionne parfaitement sur saisie et vient coller à la suite sur la premiére cellule vide.

      Sub ajouter_l1()

      Dim i As Integer
      i = 6
      Cells(i, 2).Select
      While Cells(i, 2).Value <> ""
      i = i + 1
      Wend
      Sheets("Journal").Select
      Range("C2:O3").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Journal").Select
      Cells(i, 3).Select
      ActiveSheet.Paste
      End Sub

      Ma colonne 2 n'est pas vide, elle est alimentée par formule par la colonne 3
      La valeur 6 correspond à la ligne 6 premiére ligne à remplir.

      J'ai écris la même formule pour saisie multiple :

      Sub multiple()

      Dim i As Integer
      i = 6
      Cells(i, 2).Select
      While Cells(i, 2).Value <> ""
      i = i + 1
      Wend

      Sheets("Saisie_multiple").Select
      Range("A21:M31").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Journal").Select
      Cells(i, 3).Select
      ActiveSheet.Paste
      End Sub

      Systématiquement le report ce fait sur la cellule C8 ???????

      Dans le premier cas je reporte deux lignes dans l'autre 11.

      Ou se trouve le bug?
      Je n'ai pas encore testé ta formule, car je voudrais bien comprendre.
      Merci.
      1. Contributeur
        J'insiste mais toi fais un effort...
        Tu testes Cells(i, 2) jusqu'à ce qu'elle soit vide.
        ensuite tu colles en Cells(i, 3), en quoi cela fait changer ta cellule Cells(i, 2) ????
        Au prochain tour i aura toujours la même valeur et tu colleras au même endroit.
        eric
        1. Bonsoir paolo en espagne
          Comment faire cette boucle.
          Merci
          1. Contributeur
            Bonsoir,

            tu recherches dans la colonne 2 et tu colles dans la 3ème, la 2ème est tjs vide au même endroit...
            Sinon tu as plus efficace pour retrouver la dernière ligne saisie.
            Pour la colonne B par exemple :
            derlig= [B65536].end(xlup).row
            et donc faire ton collé sur ligne derlig+1

            eric