bonjour,
je m'explique je voudrait modifier une cellule à partir d'un formulaireen fonction de 2 variable
mon code vba et le Suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub adulte_Change() If Not IsNumeric(adulte) Then 'si le champ adulte n'est pas numerique alors reponse = MsgBox("Veuillez indiquer un nombre", vbCritical, "ERREUR") 'affichr un message d'erreur adulte = Clear 'effacer le champ adulte End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub cp_clt_Change() If Not IsNumeric(cp_clt) Then ' si le champs cp_clt est du texte alors reponse = MsgBox("Veuillez écrire votre code postale correctement svp!", , "ATTENTION") 'afficher un message d'erreur cp_clt = Clear 'effacer la cellule cp_clt End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub UserForm_Initialize() Dim voyage As String, quand As String 'declaration des variables Dim y As Integer 'declaration des variables Sheets("bd").Activate ' activer la feuille exel bd y = Sheets("bd").Range("a3").End(xlDown).Offset(0, 0).Row 'mise en forme de la base de donne destination.RowSource = "a3:a" & y End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub destination_Change() Dim str As String, cel As Range 'declaration des variables datecmd.Clear 'effacer le champ datecmd str = destination.Value 'prise de valeur de la variables With Worksheets("voyage") 'avec la feuille exel voyage For Each cel In .Range("a2:b" & .Range("a" & Rows.Count).End(xlUp).Row) 'chercher que dans la base If cel = str Then 'si la comparaison est la valeur voulu et identique a la valeur trouver alors With datecmd 'dans le champ datecmd ajouter les valeur trouver .AddItem cel(1, 2) End With 'fin de l'association End If 'fin de la comparaison Next cel 'suivant cellule End With 'fin de l'association End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub enfant_Change() If Not IsNumeric(enfant) Then 'si le champs enfant n'est pas du numerique alors reponse = MsgBox("Veuillez indiquer un nombre svp!", , "ATTENTION") And enfant = Clear 'afficher un message d'erreur enfant = Clear 'effacer le champ enfant End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub nom_clt_Change() If IsNumeric(nom_clt) Then 'si le champ nom_clt est du numerique alors reponse = MsgBox("Veuillez écrire votre nom correctement svp!", , "ATTENTION") ' afficher un message d'erreur nom_clt = Clear ' effacer le champ nom_clt End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub nourisson_Change() If Not IsNumeric(nourisson) Then 'si le champ nourisson n'est pas du texte alors reponse = MsgBox("Veuillez indiquer un nombre svp!", , "ATTENTION") ' afficher un message d'erreur nourisson = Clear 'affecer le champ nourisson End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub prenom_clt_Change() If IsNumeric(prenom_clt) Then 'si le champ prenom_clt est du numerique alors reponse = MsgBox("Veuillez écrire votre prenom correctement svp!", , "ATTENTION") 'afficher message d'erreur prenom_clt = Clear 'effacer le champ prenom_clt End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub userform_activate() Worksheets("client").Activate 'active la feuille exel client client!nom_clt.SetFocus 'met le focus sur le nom client End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub annuler_Click() reponse = MsgBox("Voulez Vous vraiment quitter?", vbYesNo, "QUITTER") 'message si vous voulez quiter le formulaire If vbYesNo = oui Then ' si oui alors Range("nom_clt").Clear 'efface les données entrées Range("adresse_clt").Clear Range("prenom_clt").Clear Range("cp_clt").Clear Range("ville_clt").Clear Range("classe").Clear Range("destination").Clear Range("datecmd").Clear Range("adulte").Clear Range("enfant").Clear Range("nourisson").Clear Unload client 'sortir du formulaire Else 'sinon rien End If 'fin de la condition End Subce que je cherche a faire c'est afficher quand je s'electionne une destination et une date dans les liste deroulantes que s'a mafiche un message qui m'indique combien il reste dans les cellule eco, affaire et premiere de ma base de donnesdans 1 premiere parti
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Private Sub valider_click() nom_clt.SetFocus 'clignotemet au niveau du nom If nom_clt = "" Or prenom_clt = "" Or _ adresse_clt = "" Or cp_clt = "" Or _ ville_clt = "" Or classe = "" Or _ destination = "" Or datecmd = "" Or adulte = "" Or _ nourisson = "" Or enfant = "" Then ' verifie si les champs ne sont pas vide reponse = MsgBox("Vous n'avez pas remplis certaines informations!", _ vbCritical, "ATTENTION") ' si c le cas message d'erreur ElseIf nom_clt <> "" And prenom_clt <> "" _ And adresse_clt <> "" And cp_clt <> "" _ And ville_clt <> "" And destination <> "" _ And datecmd <> "" And classe <> "" And adulte <> "" _ And nourisson <> "" And enfant <> "" Then ' verifie si les champs sont complets alors ligne = Cells(Rows.Count, "A").End(xlUp).Row + 1 'regarde dans la base le nombre de celule complete puis ajoute 1 a ligne Range("A" & ligne) = nom_clt 'rentre les informations dans les celules vec le n°de olones et de lignes Range("B" & ligne) = prenom_clt Range("C" & ligne) = adresse_clt Range("D" & ligne) = cp_clt Range("E" & ligne) = ville_clt Range("F" & ligne) = destination Range("G" & ligne) = datecmd Range("H" & ligne) = classe Range("I" & ligne) = adulte Range("J" & ligne) = enfant Range("K" & ligne) = nourisson End If client.Hide 'ferme le formulaire client End Sub
et dans une seconde parti sa impute la valeur de mes champ a la base de donnée.si vous vouler je peut vous envoyer mon programme.
merci
Partager