Macro saisie sur nouvelle ligne vide

GeManMarg -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite partir d’un formulaire (onglet 1) (nom, prénom, date de naissance…)
Sur l’onglet suivant (2) je voudrais que, en cliquant sur un bouton, les informations saisies sur le formulaire (onglet 1) se copient sur l’onglet 2, sur une seule ligne (ligne2) et effaçant la saisie du formulaire (onglet1) qui redevient vierge…. Jusque-là je sais faire….fichier PJ en exemple
Là où je me perds, c’est que j’aimerais que, a la saisie d’une nouvelle fiche, les informations aillent sur une nouvelle ligne (ligne3) puis sur la ligne 4 a la nouvelle fiche, puis la 5 …….a l’infini

5 réponses

  1. GeManMarg
     
    Merci mais en fait je ne sais pas a quel endroit saisir la ligne de code:
    ("A" & Rows.count).End(xlUp).Row + 1
    pour que lors de la saisie de la fiche suivante je commence bien à la nouvelle ligne vide.

    Ci dessous le code que j'utilise:

    Sub Macro1()
    '
    ' Macro1 Macro
    ' test1
    '

    '
    Range("B1").Select
    Selection.Copy
    Sheets("liste").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("C2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("D2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    End Sub
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      comme ceci:

      Option Explicit
      Sub copie()
      Dim ligne As Integer
      ligne = Worksheets("liste").Range("A" & Rows.Count).End(xlUp).Row + 1
      Worksheets("form").Range("B1:B3").Copy
      Worksheets("liste").Range("A" & ligne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
              False, Transpose:=True
      Worksheets("form").Range("B1:B3").ClearContents
      End Sub
      


      Voilà

      @+
      0
  2. GeManMarg
     
    apparemment j'ai un bug avec la formule +1 de la ligne: Worksheets("liste").Range("A" & Rows.Count).End(xlUp).Row + 1
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bonjour,
      quel est le symptôme?
      0
  3. GeManMarg
     
    si j'insère la ligne: Worksheets("liste").Range("A" & Rows.Count).End(xlUp).Row + 1 là ou elle est ci dessous ( 4eme ligne) j'ai un message d'erreur : erreur d'execution 438
    si je clique sur le débogueur la ligne: Worksheets("liste").Range("A" & Rows.Count).End(xlUp).Row 1 apparait en jaune et le '+' a disparu

    Sub Macro3()
    '
    ' Macro3 Macro
    ' test 3
    '

    '
    Range("B1").Select
    Selection.Copy
    Sheets("liste").Select
    Worksheets("liste").Range("A" & Rows.Count).End(xlUp).Row 1
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("C2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("D2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B1:B4").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Ton code est mal conçu, oublie-le.
      As-tu testé l'exemple proposé en #3?
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. GeManMarg
     
    Bonjour
    Là je suis largué ...
    j'ai fait une macro pour que, à partir d'un onglet qui va servir de base de donnée, les éléments saisis se reportent sur un autre onglet (tableur). Ce que je souhaite, c'est que, à la validation via un bouton, les infos saisies se positionnent dans le tableur, sur la ligne en dessous de la dernière ligne saisie et ainsi de suite.
    Ci dessous le code que j'utilise via ma macro, il permet de transférer les infos sur le tableur, mais a la fiche suivante, il écrase les infos de la précédente.
    Sub Macro3()
    '
    ' Macro3 Macro
    '

    '
    Range("B1").Select
    Selection.Copy
    Sheets("liste").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("C2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("liste").Select
    Range("D2").Select
    ActiveSheet.Paste
    Sheets("form").Select
    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      As-tu testé le code proposé par cs_Le Pivert le 4 janv. 2022 à 15:01?
      Ne fait-il pas ce que tu souhaites?
      0