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 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
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
ce 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
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