Insertion d'une ligne dans une autre feuille

alam84 -  
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
A voir également:

2 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
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")
0
alam84
 
Merci beaucoup, j'ai rajouté quelques précisions pour avoir une réponse toute faite, merci
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
Bonjour,

Tu peux écrire plus simplement :

sheets("base de données").Rows(2).insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow  
0
alam84
 
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
0