Macro VBA

- - Dernière réponse : ThauTheme
Messages postés
4558
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
22 août 2019
- 12 août 2019 à 15:37
Bonjour,
Je suis nouveau en VBA, j'ai une feuille que j'ai nommée formulaire, une deuxième feuille j'ai nommée base, j'ai alors crée une macro qui copie les données de la feuille formulaire pour coller sur la feuille base, mais je n'arrive pas à faire la suite c'est à dire deuxième donnée pour coller sur la ligne suivante ainsi de suite.
Veuillez m'aider SVP


Configuration: Windows / Chrome 75.0.3770.142
Afficher la suite 

2 réponses

Messages postés
4558
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
22 août 2019
114
0
Merci
Bonjour Kabamba, bonjour le forum

Il te faut copier sur la première ligne vide de la base avec un code de ce type :
Dim OF as Worksheet 'déclare la variable OF (Onglet Formulaire)
Dim OB as Worksheet 'déclare la variable OB (Onglet Base)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide)

Set OF = Worksheets("Formulaire") 'définit l'onglet formulaire OF
set OB = Worksheets("Base")'définit l'onglet base OB
PLV = OB.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne A de l'onglet Base
'ensuite tes copier coller avec la syntaxe  Onglet_Source.Plage_Souce.Copy Onglet_Destination.Cellule_Destination :
OF.range("A2").Copy OB.Cells(LI, 1)
'etc...

kabambad
Messages postés
1
Date d'inscription
lundi 5 août 2019
Statut
Membre
Dernière intervention
5 août 2019
-
Merci pour la réponse que vous m'avez réservée, néanmoins il y a encore un petit soucis peut être par rapport à mon explication,
Dans l'onglet "Formulaire", je voudrais que la commande (macro) me copie la plage A7:H7 pour coller dans l'onglet "Base" à partir de la cellule A3, puis m'effacer les champs du formulaire afin de permettre une nouvelle saisie. Et la nouvelle saisie après validation doit venir se coller à partir de la cellule A4 ainsi de suite

Aidez moi SVP,

Sub dina()

Dim OF As Worksheet 'déclare la variable OF (Onglet Formulaire)
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide

Set OF = Worksheets("Formulaire") 'définit l'onglet formulaire OF
Set OB = Worksheets("Base") 'définit l'onglet base OB
PLV = OB.Cells(Application.Rows.Count, "A3").End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne A de l'onglet Base
'ensuite tes copier coller avec la syntaxe Onglet_Source.Plage_Souce.Copy Onglet_Destination.Cellule_Destination :
OF.Range("A7:H7").Copy OB.Cells(LI, 1)

End Sub
Commenter la réponse de ThauTheme
Messages postés
4558
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
22 août 2019
114
0
Merci
Essaie comme ça :
Sub dina()

Dim OF As Worksheet 'déclare la variable OF (Onglet Formulaire)
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide

Set OF = Worksheets("Formulaire") 'définit l'onglet formulaire OF
Set OB = Worksheets("Base") 'définit l'onglet base OB
'définit la première ligne vide PLV de la colonne A de l'onglet Base
'(ligne 3 si A3 est vide, sinon la première ligne vide de la colonne A de l'onglet OB)
PLV = IIf(OB.Range("A3").Value = "", 3, OB.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1)
OF.Range("A7:H7").Copy OB.Cells(LI, 1)
End Sub

Commenter la réponse de ThauTheme