Insertion d'une ligne dans une autre feuille
alam84
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Etant débutant dans les macros, voilà une petite question: j'ai un fichier avec 2 feuilles, la première "formulaire", la deuxième "base de données". Je rentre mes infos dans le formulaire (nom, prénom...) et veut ensuite transférer les infos dans la base de données avec une macro.
Je programme ma macro comme suit: dans base de données je clique droit sur 2ème ligne et clique sur insertion (pour avoir une ligne vide dans la base de donnée pour rentrer mes infos). Je continue avec de basics copier-coller jusqu'à obtention du résultat.
Problème: Lorsque j'exécute mon macro depuis la feuille base de donnée, tout fonctionne. Par contre, si j'exécute ma macro depuis le formulaire ( ce que je souhaite grâce à un bouton), la ligne s'ajoute dans la mauvaise feuille. Comment modifier ma macro?
J'espère avoir été clair et attend vos lumières
Meci d'avance
Etant débutant dans les macros, voilà une petite question: j'ai un fichier avec 2 feuilles, la première "formulaire", la deuxième "base de données". Je rentre mes infos dans le formulaire (nom, prénom...) et veut ensuite transférer les infos dans la base de données avec une macro.
Je programme ma macro comme suit: dans base de données je clique droit sur 2ème ligne et clique sur insertion (pour avoir une ligne vide dans la base de donnée pour rentrer mes infos). Je continue avec de basics copier-coller jusqu'à obtention du résultat.
Problème: Lorsque j'exécute mon macro depuis la feuille base de donnée, tout fonctionne. Par contre, si j'exécute ma macro depuis le formulaire ( ce que je souhaite grâce à un bouton), la ligne s'ajoute dans la mauvaise feuille. Comment modifier ma macro?
J'espère avoir été clair et attend vos lumières
Meci d'avance
A voir également:
- Insertion d'une ligne dans une autre feuille
- Partager photos en ligne - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Aller à la ligne dans une cellule excel - Guide
- Mètre en ligne - Guide
- Insertion sommaire word - Guide
2 réponses
Bonjour,
Il faut que ta macro affecte la bonne feuille. Tu as sans doute l'identification par activesheet qu'il faudrait remplacer par sheets("base de données")
Il faut que ta macro affecte la bonne feuille. Tu as sans doute l'identification par activesheet qu'il faudrait remplacer par sheets("base de données")
Voici une copie de ma macro:
Sub Macro1()
'
' Macro1 Macro
'
'
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("A2").Select
Sheets("Traitements").Select
ActiveCell.FormulaR1C1 = "=Facture!R[3]C[4]"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[20]C[1]"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[21]C"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[22]C[-1]"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=Facture!C25"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[23]C[8]"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[20]C[7]"
Range("H2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[22]C[6]"
Range("I2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[3]C[7]"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[40]C[2]"
Range("J3").Select
End Sub
Comment affecter le Rows("2:2") à la feuille base de données?
Merci d'avance
Sub Macro1()
'
' Macro1 Macro
'
'
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("A2").Select
Sheets("Traitements").Select
ActiveCell.FormulaR1C1 = "=Facture!R[3]C[4]"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[20]C[1]"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[21]C"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[22]C[-1]"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=Facture!C25"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[23]C[8]"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[20]C[7]"
Range("H2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[22]C[6]"
Range("I2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[3]C[7]"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=Facture!R[40]C[2]"
Range("J3").Select
End Sub
Comment affecter le Rows("2:2") à la feuille base de données?
Merci d'avance
Tu peux écrire plus simplement :
sheets("base de données").Rows(2).insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow