Coller à la suite

ki.net Messages postés 31 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. paolo_en_espagne Messages postés 41 Statut Membre 12
     
    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
  2. ki.net Messages postés 31 Statut Membre
     
    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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  4. ki.net Messages postés 31 Statut Membre
     
    Bonsoir paolo en espagne
    Comment faire cette boucle.
    Merci
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    -1