Autres Code VBA pour aller à la ligne du dessous

alain.pierrephie

XLDnaute Occasionnel
Bonjour au forum
N'étant absolument pas fort dans le VBA je fait appelle à une bonne volonté pour m'aider. J'explique mon souci
J'ai créé un module de saisi afin qu'il reporte les données dans un formulaire.
J'ai quand même réussit a faire ce code ci dessous mais une fois que j'ai mis les données qui commencent en "A3" puis "B3" etc... Le curseur ne passe pas à la ligne du dessous c'est a dire en "A4" pour une nouvelle ligne puis B4 , C4 etc...
Je me doute que pour vous c'est ultra simple mais je galère grave.
Merci à celui ou ceux qui m'aideront
bise a vous tous



Private Sub Ajout_Click()
Sheets("Liste clients").Activate

Range("a3").Select
ActiveCell = NOM.Value

Range("b3").Select
ActiveCell = marital.Value

Range("c3").Select
ActiveCell = PRENOM.Value

Range("d3").Select
ActiveCell = naissance.Value


Selection.Offset(1, 0).Select


End Sub
 

vgendron

XLDnaute Barbatruc
bonjour

sans fichier exemple.. c'est vrai que c'est difficile de pouvoir te répondre

De ce que je comprend tu as un formulaire de saisi avec des textbox
quand tu cliques sur un bouton "enregistrer" ou "valider" copie les données sur ta feuille avec ce code
VB:
Private Sub Ajout_Click()
Sheets("Liste clients").Activate

Range("a3").Select
ActiveCell = NOM.Value

Range("b3").Select
ActiveCell = marital.Value

Range("c3").Select
ActiveCell = PRENOM.Value

Range("d3").Select
ActiveCell = naissance.Value


Selection.Offset(1, 0).Select


End Sub

et tu souhaites qu'à la prochaine saisie, il enregistre à la ligne suivante..
dans ce cas remplace ton code par
VB:
Private Sub Ajout_Click()
with Sheets("Liste clients")
fin=.range("A" &.rows.count).end(xlup).row
.Range("A" &fin)=NOM.Value

.Range("B" &fin)=marital.Value

.Range("C" &fin)=PRENOM.Value

.Range("D" &fin)= naissance.Value
end with

End Sub
 

alain.pierrephie

XLDnaute Occasionnel
bonjour

sans fichier exemple.. c'est vrai que c'est difficile de pouvoir te répondre

De ce que je comprend tu as un formulaire de saisi avec des textbox
quand tu cliques sur un bouton "enregistrer" ou "valider" copie les données sur ta feuille avec ce code
VB:
Private Sub Ajout_Click()
Sheets("Liste clients").Activate

Range("a3").Select
ActiveCell = NOM.Value

Range("b3").Select
ActiveCell = marital.Value

Range("c3").Select
ActiveCell = PRENOM.Value

Range("d3").Select
ActiveCell = naissance.Value


Selection.Offset(1, 0).Select


End Sub

et tu souhaites qu'à la prochaine saisie, il enregistre à la ligne suivante..
dans ce cas remplace ton code par
VB:
Private Sub Ajout_Click()
with Sheets("Liste clients")
fin=.range("A" &.rows.count).end(xlup).row
.Range("A" &fin)=NOM.Value

.Range("B" &fin)=marital.Value

.Range("C" &fin)=PRENOM.Value

.Range("D" &fin)= naissance.Value
end with

End Sub
C'est pas mal mais les inscriptions se font sur les titres des colonnes
NOM NaissanceNom MaritalPRENOMDATE DE NAISSANCE
et me les effacent. Ensuite lorsque je fais un autre client ça écrase le premier de la première ligne alors que je veux garder tous les clients qui s'inscrivent au fur et a mesure. Il faudrait demander a VBA d'aller à la dernière ligne et d'aller SOUS cette dernière ligne. J'espère que ça va t'aider
 

vgendron

XLDnaute Barbatruc
exact.. erreur de ma part
corrige avec ceci
VB:
Private Sub Ajout_Click()
with Sheets("Liste clients")
fin=.range("A" &.rows.count).end(xlup).row +1
.Range("A" &fin)=NOM.Value

.Range("B" &fin)=marital.Value

.Range("C" &fin)=PRENOM.Value

.Range("D" &fin)= naissance.Value
end with

End Sub

d'ou l'interet d'avoir un fichier en guise d'exemple pour tester
 

shinozak

XLDnaute Occasionnel
Rajoute juste +1 au code de @vgendron


VB:
Private Sub Ajout_Click()
with Sheets("Liste clients")
fin=.range("A" &.rows.count).end(xlup).row
.Range("A" &fin + 1)=NOM.Value

.Range("B" &fin + 1)=marital.Value

.Range("C" &fin + 1)=PRENOM.Value

.Range("D" &fin + 1)= naissance.Value
end with

End Sub
 

alain.pierrephie

XLDnaute Occasionnel
Rajoute juste +1 au code de @vgendron


VB:
Private Sub Ajout_Click()
with Sheets("Liste clients")
fin=.range("A" &.rows.count).end(xlup).row
.Range("A" &fin + 1)=NOM.Value

.Range("B" &fin + 1)=marital.Value

.Range("C" &fin + 1)=PRENOM.Value

.Range("D" &fin + 1)= naissance.Value
end with

End Sub
Mon Dieu que je suis content ça marche nickel comme je veux, merci a vous 2 Shinozav et Gendron. Je sais que j'ai encore beaucoup a faire mais vais essayer de faire le reste mais si j'ai un souci je reviendrai vers vous. Encore une fois merci énormément à vous 2, je pensais ne jamais y arriver.
Je vous souhaite une belle semaine
Alain
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Alain, shinozak, Vgendron,
Peut être un poil plus courst et plus rapide :
VB:
Private Sub Ajout_Click()
    Liste = Array(NOM.Value, marital.Value, PRENOM.Value, naissance.Value)
    With Sheets("Liste clients")
        Fin = 1 + .Range("A" & .Rows.Count).End(xlUp).Row
        Range(Cells(Fin, 1), Cells(Fin, 1 + UBound(Liste))).Value = Liste
    End With
End Sub
 

alain.pierrephie

XLDnaute Occasionnel
Bonjour Alain, shinozak, Vgendron,
Peut être un poil plus courst et plus rapide :
VB:
Private Sub Ajout_Click()
    Liste = Array(NOM.Value, marital.Value, PRENOM.Value, naissance.Value)
    With Sheets("Liste clients")
        Fin = 1 + .Range("A" & .Rows.Count).End(xlUp).Row
        Range(Cells(Fin, 1), Cells(Fin, 1 + UBound(Liste))).Value = Liste
    End With
End Sub
Merci pour cette astuce Sylvanu
 

Statistiques des forums

Discussions
290 755
Messages
1 910 209
Membres
176 538
dernier inscrit
Charlydebutant
Haut Bas