Bonjour tout le monde
Sa fait un petit moment que beaucoup d'entre vous m'avait aidé à faire mon programme complet pour mon activité
Seulement, la maintenant je vient de modifier quelques petites choses et je suis bloquer ! :/
J'ai donc un programme complet en UserForm qui enregistre mes devis dans une feuille base de donnée "Devis" et qui enregistre mes Facture dans une feuille base de donnée "Facturier" Jusque la tout fonctionne forcément
Mais j'aimerais un code pour pouvoir MODIFIER un devis existant...
pour le moment, il cherche la 1er ligne vide et enregistre le devis à cette ligne...
Ici je repart avec un nouveau bouton dans l'usf "Modifier devis" donc une fois que je clic, il vérifie si la textbox n° de devis est vide et alors il sort, sinon il continue et par rapport au n° du devis inscrit il recopie donc toutes les TextBox dans la base de donné et forcément à la ligne correspondant au n° du devis =)
Voici ou j'en suis :
Merci à vous
Code :
Private Sub CommandButton25_Click()
If TextBox100 = "" Then
Exit Sub
Else
'Mise en place des valeurs saisies
Dim I As Long, Lig As Long
' Numéro de ligne = Entête tableau 1 + Choix dans la liste + 1 car commence à 0
I = Val(TextBox100)
Lig = 2 + I + 1
' Avec la feuille BD Poste
Select Case UCase(Me.ComboBox13.Value) 'agit en fonction de la valeur de la ComboBox13 (convertie en majuscules)
Dim O As Worksheet
Case "DEVIS" 'cas "DEVIS"
Set O = Worksheets("Devis") 'définit l'onglet O
End Select 'fin de l'action en fonction de la valeur de la Combobox13
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'userForm
'si la propriété [Tag] du contrôle n'est pas vide, renvoie la valeur du contrôle dans la cellule
'ligne = PLV / colonne = valeur de la propriété [Tag] du contrôle
If CTRL.Tag <> "" Then O.Cells(Lig, CTRL.Tag).Value = CTRL.Value
Next CTRL 'prochaine contrôle de la boucle
End If 'fin de la condition
Worksheets("Facturier").Range("BV:BX").ClearContents 'supprime les données qu'il copie en trop dans Facturier
Worksheets("Devis").Range("BZ:BZ").ClearContents 'supprime les données qu'il copie en trop dans Devis
MsgBox "Les données sont enregistrées"
'Methode simple pour revenir à l'userform "Vide"
Unload Me 'Quitte l'userform
UserForm2.Show 'Revient dans l'userform
End Sub
Sa fait un petit moment que beaucoup d'entre vous m'avait aidé à faire mon programme complet pour mon activité
Seulement, la maintenant je vient de modifier quelques petites choses et je suis bloquer ! :/
J'ai donc un programme complet en UserForm qui enregistre mes devis dans une feuille base de donnée "Devis" et qui enregistre mes Facture dans une feuille base de donnée "Facturier" Jusque la tout fonctionne forcément
Mais j'aimerais un code pour pouvoir MODIFIER un devis existant...
pour le moment, il cherche la 1er ligne vide et enregistre le devis à cette ligne...
Ici je repart avec un nouveau bouton dans l'usf "Modifier devis" donc une fois que je clic, il vérifie si la textbox n° de devis est vide et alors il sort, sinon il continue et par rapport au n° du devis inscrit il recopie donc toutes les TextBox dans la base de donné et forcément à la ligne correspondant au n° du devis =)
Voici ou j'en suis :
Merci à vous
Code :
Private Sub CommandButton25_Click()
If TextBox100 = "" Then
Exit Sub
Else
'Mise en place des valeurs saisies
Dim I As Long, Lig As Long
' Numéro de ligne = Entête tableau 1 + Choix dans la liste + 1 car commence à 0
I = Val(TextBox100)
Lig = 2 + I + 1
' Avec la feuille BD Poste
Select Case UCase(Me.ComboBox13.Value) 'agit en fonction de la valeur de la ComboBox13 (convertie en majuscules)
Dim O As Worksheet
Case "DEVIS" 'cas "DEVIS"
Set O = Worksheets("Devis") 'définit l'onglet O
End Select 'fin de l'action en fonction de la valeur de la Combobox13
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'userForm
'si la propriété [Tag] du contrôle n'est pas vide, renvoie la valeur du contrôle dans la cellule
'ligne = PLV / colonne = valeur de la propriété [Tag] du contrôle
If CTRL.Tag <> "" Then O.Cells(Lig, CTRL.Tag).Value = CTRL.Value
Next CTRL 'prochaine contrôle de la boucle
End If 'fin de la condition
Worksheets("Facturier").Range("BV:BX").ClearContents 'supprime les données qu'il copie en trop dans Facturier
Worksheets("Devis").Range("BZ:BZ").ClearContents 'supprime les données qu'il copie en trop dans Devis
MsgBox "Les données sont enregistrées"
'Methode simple pour revenir à l'userform "Vide"
Unload Me 'Quitte l'userform
UserForm2.Show 'Revient dans l'userform
End Sub