Concernant ce bout de code, une anomalie se produit a la copie des données sur les feuilles.
au lieu d’être copié comme indiqué sur le code sur l'onglet "BD" les données sont copiés sur l'onglet qui est actif !
Pouvez vous m'aider ?
VB:
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
Range("A" & L).Value = TextBox_date
Range("B" & L).Value = TextBox_nom
Range("C" & L).Value = TextBox_prenom
Range("D" & L).Value = TextBox_infolog
Range("E" & L).Value = ComboBox_chef
Range("G" & L).Value = ComboBox_certification
Range("H" & L).Value = ComboBox_montage
Range("J" & L).Value = TextBox_observation
End If
End Sub
c'est normal, tu n'indique pas sur quelle feuille les données doivent être copiées, donc par défaut, sur l'onglet actif.
Ta variable "L" n'est pas rattaché à la feuille "BD", elle va juste compter dessus.
essaye avec ça :
VB:
Private Sub CommandButton1_Click()
Dim L As Integer
Dim ws as Worksheets
ws=worksheets("BD")
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
ws.Range("A" & L).Value = TextBox_date
ws.Range("B" & L).Value = TextBox_nom
ws.Range("C" & L).Value = TextBox_prenom
ws.Range("D" & L).Value = TextBox_infolog
ws.Range("E" & L).Value = ComboBox_chef
ws.Range("G" & L).Value = ComboBox_certification
ws.Range("H" & L).Value = ComboBox_montage
ws.Range("J" & L).Value = TextBox_observation
End If
End Sub
c'est normal, tu n'indique pas sur quelle feuille les données doivent être copiées, donc par défaut, sur l'onglet actif.
Ta variable "L" n'est pas rattaché à la feuille "BD", elle va juste compter dessus.
essaye avec ça :
VB:
Private Sub CommandButton1_Click()
Dim L As Integer
Dim ws as Worksheets
ws=worksheets("BD")
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
ws.Range("A" & L).Value = TextBox_date
ws.Range("B" & L).Value = TextBox_nom
ws.Range("C" & L).Value = TextBox_prenom
ws.Range("D" & L).Value = TextBox_infolog
ws.Range("E" & L).Value = ComboBox_chef
ws.Range("G" & L).Value = ComboBox_certification
ws.Range("H" & L).Value = ComboBox_montage
ws.Range("J" & L).Value = TextBox_observation
End If
End Sub
autant pour moi, je suis allez un peu trop vite en besogne
VB:
Private Sub CommandButton1_Click()
Dim L As Integer
Dim ws as Worksheet
set ws=sheets("BD")
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
ws.Range("A" & L).Value = TextBox_date
ws.Range("B" & L).Value = TextBox_nom
ws.Range("C" & L).Value = TextBox_prenom
ws.Range("D" & L).Value = TextBox_infolog
ws.Range("E" & L).Value = ComboBox_chef
ws.Range("G" & L).Value = ComboBox_certification
ws.Range("H" & L).Value = ComboBox_montage
ws.Range("J" & L).Value = TextBox_observation
End If
End Sub
autant pour moi, je suis allez un peu trop vite en besogne
VB:
Private Sub CommandButton1_Click()
Dim L As Integer
Dim ws as Worksheet
set ws=sheets("BD")
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
ws.Range("A" & L).Value = TextBox_date
ws.Range("B" & L).Value = TextBox_nom
ws.Range("C" & L).Value = TextBox_prenom
ws.Range("D" & L).Value = TextBox_infolog
ws.Range("E" & L).Value = ComboBox_chef
ws.Range("G" & L).Value = ComboBox_certification
ws.Range("H" & L).Value = ComboBox_montage
ws.Range("J" & L).Value = TextBox_observation
End If
End Sub
Une autre question en relation avec ce code je n'arrive pas a adapter la date du jour sur les texbox j'ai cela mais je n'arrive pas a l'adapter !
textbox1.value=format(now,"dd,mm,yyyy")
par contre apres plusieurs essai j'ai aussi sur mon userform un deuxieme bouton qui copie les donnees sur un autre onglet du coup
erreur execution 13 de incomptabilite
VB:
Private Sub CommandButton4_Click()
Dim L As Integer
Dim ws As Worksheets
Set ws = Sheets("BD_COMBIS")
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("BD_COMBIS").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
Range("A" & L).Value = TextBox_datecombi
Range("E" & L).Value = TextBox_combi
Range("D" & L).Value = TextBox_codeinfolog
End If
End Sub
Bonjour.
Vous ne pouvez pas affecter un objet à une collection. (je parle du type Worksheets dans la déclaration de ws)
Vous auriez intérêt à mettre vos plages sous forme de tableau et à utiliser mon complément CBxLCtlA.xlam: il s'occupe correctement de beaucoup de choses dont vous n'aurez plus à programmer les détails. Presque tout se définira dans la UserForm_Initialize. Je joindrai son précurseur à installer si ça vous intéresse.
Quels sont les liens entres la feuille BD et la feuille BD_COMBIS ?
Bonjour.
Vous ne pouvez pas affecter un objet à une collection. (je parle du type Worksheets dans la déclaration de ws)
Vous auriez intérêt à mettre vos plages sous forme de tableau et à utiliser mon complément CBxLCtlA.xlam: il s'occupe correctement de beaucoup de choses dont vous n'aurez plus à programmer les détails. Presque tout se définira dans la UserForm_Initialize. Je joindrai son précurseur à installer si ça vous intéresse.
Quels sont les liens entres la feuille BD et la feuille BD_COMBIS ?
Par ailleurs j'ai l'impression que vous allez revoir l'UserForm suite au constat que tout peut se gérer dans la même feuille. Alors je joins aussi mon générateur d'UserForm.