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
J'ai essayé de le mettre mais même en le dépouillant presque complètement il était encore trop gros (15 500 ko) mais en gros tu as cela. Début du formulaire en A3 (nom de naissance "a")
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
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 Naissance
Nom Marital
PRENOM
DATE 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
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
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
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
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
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