Code VBA ne fonctionne pas

salut tout le monde

ce code ne se fonctionne pas, je ne sais pas où le problème

c'est un simple exemple de se que je veux faire

aide moi svp

Private Sub CommandButton1_Click()
Dim a As Integer
Dim d As Date, d1 As Date, d2 As Date, d3 As Date, d4 As Date
d1 = DateSerial(2018, 2, 1)
d2 = DateSerial(2018, 2, 28)
d3 = DateSerial(2018, 3, 1)
d4 = DateSerial(2018, 3, 31)
If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, "confirmation") = vbYes Then
a = Sheets("feuil1").Range("A25000").End(xlUp).Row + 1
If d >= d1 And d <= d2 Then
Cells(a, 1) = TextBox1.Value
ElseIf d >= d3 And d <= d4 Then
Cells(a, 3) = TextBox1.Value
End If
End If
End Sub

Bonsoir

Que signifie ton d, dans

If d >= d1 And d <= d2 Then
Cells(a, 1) = TextBox1.Value
ElseIf d >= d3 And d <= d4 Then
Cells(a, 3) = TextBox1.Value
End If

Merci

bonsoir

d c'est variable date

date d'aujourd'hui

dim d as date

Bonsoir,

Si tu ne l'initialises pas, sa valeur est 0 . Soit la date du 30 décembre 1899 en VBA !

d = Date

Cordialement.

Bonsoir salma,

Je te propose ce code VBA :

Private Sub CommandButton1_Click()
  If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, _
    "confirmation") <> vbYes Then Exit Sub
  Dim d As Date, col As Byte, dlig&: d = Date
  ' constantes dates : #mois/jour/an#
  If d >= #2/1/2018# And d <= #2/28/2018# Then
    col = 1
  ElseIf d >= #3/1/2018# And d <= #3/31/2018# Then
    col = 3
  End If
  If col = 0 Then Exit Sub
  dlig = Cells(Rows.Count, 1).End(xlUp).Row + 1
  Cells(dlig, col) = TextBox1.Value
End Sub

Cordialement,

dhany

merci beaucoup ça marche bien

mais si je veut changer la feuil par exemple:

si la date est entre 1/1/2018 et 1/31/2018 il va entrer le continue de textbox dans la feuil1 et si la date est entre 2/1/2018 et 2/28/2018 il va enter le continue de textbox dans la feuil2

Bonjour salma,

Le bouton de commande nommé CommandButton1 est placé sur ta 1ère feuille nommée "Feuil1", n'est-ce pas ? si oui, alors si tu copies cette feuille, la feuille copiée contiendra aussi le même bouton de commande (car il a été dupliqué) ; donc si tu changes de feuille pour aller sur cette feuille que tu as copiée, tu verras le bouton de commande, alors que si tu vas sur une autre feuille, tu ne le verras pas.

Tu as écrit : « il va entrer le continue de textbox dans la feuille 1 » mais ce n'est pas très clair ; je crois que tu as voulu dire ceci : « ça ajoute les données sur la feuille où est placé le bouton » ; si oui, la réponse est : exact !

Pour le mois de janvier (ou pour le mois de février), il faut bien sûr adapter les constantes dates (#../../..#) du code VBA.

Si tu voulais demander autre chose, merci de le formuler plus clairement ; et ce sera mieux si tu joins ton fichier (sans données confidentielles) ; donne aussi un exemple du résultat attendu.

Tu dois indiquer clairement sur quelle feuille les données doivent être ajoutées ; exemples :

a) sur la feuille où est placé le bouton

b) toujours sur la feuille nommée "Feuil1"

c) sur quelle autre feuille ?

Cordialement,

dhany

salut Dhany

voilà une petite aperçu de se que je veux faire

If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, "confirmation") = vbYes Then

 Dim d As Date, col As Byte, dlig&: d = Date
  ' constantes dates : #mois/jour/an#
  If d >= #1/1/2018# And d <= #1/31/2018# Then
  a = Sheets("Feuil1").Range("A25000").End(xlUp).Row + 1
Cells(a, 1) = TextBox1.Value
Cells(a, 2) = TextBox2.Value
 ElseIf d >= #2/1/2018# And d <= #2/28/2018# Then
   a = Sheets("Feuil2").Range("A25000").End(xlUp).Row + 1
Cells(a, 1) = TextBox1.Value
Cells(a, 2) = TextBox2.Value
End If
End If
End Sub
3classeur.xlsm (19.63 Ko)

Bonsoir

Voici ton code

Private Sub CommandButton1_Click()
Dim a As Integer
If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, "confirmation") = vbYes Then

 Dim d As Date, col As Byte, dlig&: d = Date
  ' constantes dates : #mois/jour/an#
  If d >= #1/1/2018# And d <= #1/31/2018# Then
  a = Sheets("Feuil1").Range("A25000").End(xlUp).Row + 1
Sheets("Feuil1").Cells(a, 1) = TextBox1.Value
Sheets("Feuil1").Cells(a, 2) = TextBox2.Value
 ElseIf d >= #2/1/2018# And d <= #2/28/2018# Then
   a = Sheets("Feuil2").Range("A25000").End(xlUp).Row + 1
Sheets("Feuil2").Cells(a, 1) = TextBox1.Value
Sheets("Feuil2").Cells(a, 2) = TextBox2.Value
End If
End If
End Sub

Si tu précises sur quelle feuille tu dois aller , c'est mieux

A+

Bonsoir salma,

Je te retourne ton fichier Excel modifié :

7classeur.xlsm (21.10 Ko)

Alt F11 pour voir le code VBA, puis revenir sur Excel.

Merci de me donner ton avis.

Cordialement,

dhany

bonjour dhany

merci beaucoup ça marche bien

merci Patty aussi de votre aide

Rechercher des sujets similaires à "code vba fonctionne pas"