A voir également:
- Vba date du jour
- Date du jour vba - Meilleures réponses
- Excel vba date du jour - Meilleures réponses
- Excel VBA, récupération de la date du jour - Forum - Excel
- Récupérer la date du jour sous VBA - Forum - Bureautique
- Afficher la date du jour VBA ✓ - Forum - VB / VBA
- Vba date du jour format ✓ - Forum - VB / VBA
- VBA cellule active date du jour ✓ - Forum - VB / VBA
13 réponses
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Salut,
Exemple Now te donne la date et l'heure et Date la date actuelle. Ensuite soit tu associes la macro à un bouton, une fonction ou à l'ouverture du fichier pour qu'elle s'actualise automatiquement
Sub test()
[A1] = Now
[A2] = Date
End Sub
mais tu peux passer sans VBA avec une fonction
dans la cellule =MAINTENANT()
ou = AUJOURDHUI()
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Exemple Now te donne la date et l'heure et Date la date actuelle. Ensuite soit tu associes la macro à un bouton, une fonction ou à l'ouverture du fichier pour qu'elle s'actualise automatiquement
Sub test()
[A1] = Now
[A2] = Date
End Sub
mais tu peux passer sans VBA avec une fonction
dans la cellule =MAINTENANT()
ou = AUJOURDHUI()
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Signaler
kay33
Ok merci je v essayé
Signaler
kay33
Désoler mais sa ne marche pas comme je veut car moi g un bouton qui ouvre une combobox et je veut que cet date se mette automatiquement dans ma Combobox.
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Oui bien sur, mais dans ta demande il n'était pas question de combobox.
Normalement un combobox est utilisé pour afficher une liste déroulante soit à partir d'une plage ou d'un code. Et ton combobox est dans une userform ou sur la feuille de calcul
Oui bien sur, mais dans ta demande il n'était pas question de combobox.
Normalement un combobox est utilisé pour afficher une liste déroulante soit à partir d'une plage ou d'un code. Et ton combobox est dans une userform ou sur la feuille de calcul
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Si le combobox est le numéro 1, ce code affichera la date à l'activation de l'userform, si tu remplaces Date par Now tu auras la date et l'heure
Private Sub UserForm_Initialize()
ComboBox1 = Date
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Si le combobox est le numéro 1, ce code affichera la date à l'activation de l'userform, si tu remplaces Date par Now tu auras la date et l'heure
Private Sub UserForm_Initialize()
ComboBox1 = Date
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Oui tout à fait, le code ci dessous affiche la date dans un combobox et un textbox
ensuite la cellule A1 récupére la date du textbox
Private Sub UserForm_Initialize()
ComboBox1 = Date
TextBox1 = Date
[A1] = TextBox1
End Sub
Oui tout à fait, le code ci dessous affiche la date dans un combobox et un textbox
ensuite la cellule A1 récupére la date du textbox
Private Sub UserForm_Initialize()
ComboBox1 = Date
TextBox1 = Date
[A1] = TextBox1
End Sub
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Ou j'ai mal compris ta demande, ou tes explications sont incomplètes, en principe chaque fois que je donne un code, je le teste avant
Regarde le fichier joint, aucune saisie sur la feuille 1.
Lorsque tu actives le bouton l'userform s'affiche avec la date du jour dans le textbox et le combobox.
Pour que tu comprennes le code,
Ces dates s'inscrivent respectivement en A1 et A3, si les dates sont modifiées dans le textbox ou combobox elle s'inscrivent en C1 et C3.
https://www.cjoint.com/?gikQNdPBMD
Ou j'ai mal compris ta demande, ou tes explications sont incomplètes, en principe chaque fois que je donne un code, je le teste avant
Regarde le fichier joint, aucune saisie sur la feuille 1.
Lorsque tu actives le bouton l'userform s'affiche avec la date du jour dans le textbox et le combobox.
Pour que tu comprennes le code,
Ces dates s'inscrivent respectivement en A1 et A3, si les dates sont modifiées dans le textbox ou combobox elle s'inscrivent en C1 et C3.
https://www.cjoint.com/?gikQNdPBMD
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Je comprends mieux, tu ne peux utiliser qu'une fois
Private Sub UserForm_Initialize
il faut donc insérer tes codes à la suite
Private Sub UserForm_Initialize()
ComboBox1 = Date
TextBox1 = Date
[A1] = TextBox1
'tes codes soit après ou en début de procédure
End Sub
Je comprends mieux, tu ne peux utiliser qu'une fois
Private Sub UserForm_Initialize
il faut donc insérer tes codes à la suite
Private Sub UserForm_Initialize()
ComboBox1 = Date
TextBox1 = Date
[A1] = TextBox1
'tes codes soit après ou en début de procédure
End Sub
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Si tu as bien conservé qu'un seul Private Sub UserForm_Initialize
colle ton code dans un post, tu dois avoir une erreur
Si tu as bien conservé qu'un seul Private Sub UserForm_Initialize
colle ton code dans un post, tu dois avoir une erreur
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
colle ton code dans un post sinon je ne peux pas t'aider
colle ton code dans un post sinon je ne peux pas t'aider
kay33
Private Sub UserForm_Initialize()
Dim i, dernlign As Integer
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
dernlign = .Range("A65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox12.AddItem .Cells(i, 1).Value
Next i
End With
End Sub
Voila
Dim i, dernlign As Integer
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
dernlign = .Range("A65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox12.AddItem .Cells(i, 1).Value
Next i
End With
End Sub
Voila
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Que veux tu afficher dans ton combobox 10 et 12
l'erreur vient de ce bout de code qui est répété deux fois avec la même variable pour la colonne A
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
Regarde ce code
Private Sub UserForm_Initialize()
Dim x, w As String
x = Sheets("utile").Range("G65536").End(xlUp)
w = Sheets("utile").Range("A65536").End(xlUp)
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox10 = x
ComboBox12 = w
End Sub
Que veux tu afficher dans ton combobox 10 et 12
l'erreur vient de ce bout de code qui est répété deux fois avec la même variable pour la colonne A
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
Regarde ce code
Private Sub UserForm_Initialize()
Dim x, w As String
x = Sheets("utile").Range("G65536").End(xlUp)
w = Sheets("utile").Range("A65536").End(xlUp)
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox10 = x
ComboBox12 = w
End Sub
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Je suis d'accord, mais ton erreur vient de cette partie de code,
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
dernlign = .Range("A65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox12.AddItem .Cells(i, 1).Value
Next i
End With
isole le en mettant une apostrophe devant chaque ligne et tu verras qu'il n'y a plus d'erreur
' With Sheets("utile")
' dernlign = .Range("G65536").End(xlUp).Row
' For i = 1 To dernlign
' ComboBox10.AddItem .Cells(i, 7).Value
' Next i
' dernlign = .Range("A65536").End(xlUp).Row
' For i = 1 To dernlign
' ComboBox12.AddItem .Cells(i, 1).Value
' Next i
' End With
Ou testes ton code avec le fonction pas à pas détaillé
With Sheets("utile")
dernlign = .Range("G65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox10.AddItem .Cells(i, 7).Value
Next i
dernlign = .Range("A65536").End(xlUp).Row
For i = 1 To dernlign
ComboBox12.AddItem .Cells(i, 1).Value
Next i
End With
isole le en mettant une apostrophe devant chaque ligne et tu verras qu'il n'y a plus d'erreur
' With Sheets("utile")
' dernlign = .Range("G65536").End(xlUp).Row
' For i = 1 To dernlign
' ComboBox10.AddItem .Cells(i, 7).Value
' Next i
' dernlign = .Range("A65536").End(xlUp).Row
' For i = 1 To dernlign
' ComboBox12.AddItem .Cells(i, 1).Value
' Next i
' End With
Ou testes ton code avec le fonction pas à pas détaillé
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
normal au début tu demandes un code pour afficher une date sur laquelle j'ai répondu
ensuite le code ne fonctionne pas pour double utilisation de la syntaxe
Private Sub UserForm_Initialize()
a la quelle je t'ai répondu qu'il fallait l'utiliser qu'une fois
Ensuite tu as une erreur à l'initialisation je t'en ai donné la raison
maintenant si tu veux afficher mon code comme je te l'ai conseillé sous la même syntaxe, regarde en fin de code
Private Sub UserForm_Initialize()
Dim x, w As String
x = Sheets("utile").Range("G65536").End(xlUp)
w = Sheets("utile").Range("A65536").End(xlUp)
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
' TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox10 = x
ComboBox12 = w
ComboBox1 = Date
TextBox1 = Date ' si tu veux afficher la date dans ton texbox il faut supprimer la
'ligne en gras parce qu'on ne peut pas d'une part textebox vide
'et deux ligne plus bas afficher la date
[A1] = TextBox1
[B2] = ComboBox1
End Sub
normal au début tu demandes un code pour afficher une date sur laquelle j'ai répondu
ensuite le code ne fonctionne pas pour double utilisation de la syntaxe
Private Sub UserForm_Initialize()
a la quelle je t'ai répondu qu'il fallait l'utiliser qu'une fois
Ensuite tu as une erreur à l'initialisation je t'en ai donné la raison
maintenant si tu veux afficher mon code comme je te l'ai conseillé sous la même syntaxe, regarde en fin de code
Private Sub UserForm_Initialize()
Dim x, w As String
x = Sheets("utile").Range("G65536").End(xlUp)
w = Sheets("utile").Range("A65536").End(xlUp)
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
' TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox10 = x
ComboBox12 = w
ComboBox1 = Date
TextBox1 = Date ' si tu veux afficher la date dans ton texbox il faut supprimer la
'ligne en gras parce qu'on ne peut pas d'une part textebox vide
'et deux ligne plus bas afficher la date
[A1] = TextBox1
[B2] = ComboBox1
End Sub
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Si le code plante ce n'est pas pour une raison de taille du fichier mais certainement à cause d'une erreur
Alors soit tu utilises la fonction pas à pas détaillé pour tester ton code, ou autre astuce que je te redonne place devant chaque ligne du code une apostrophe et teste le code, efface une apostrophe et reteste etc ... tu verras la ligne ou partie du code qui plante et qu'il faudra modifier
Alors soit tu utilises la fonction pas à pas détaillé pour tester ton code, ou autre astuce que je te redonne place devant chaque ligne du code une apostrophe et teste le code, efface une apostrophe et reteste etc ... tu verras la ligne ou partie du code qui plante et qu'il faudra modifier
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour à tous,
Il me semble qu'il y a une incompréhension entre vous deux car avec cette simple modification ta macro doit fonctionner :
Voici l'exemple avec ce code :
http://www.cijoint.fr/cjlink.php?file=cj201006/cijAt0Qg7w.xls
Il me semble qu'il y a une incompréhension entre vous deux car avec cette simple modification ta macro doit fonctionner :
Private Sub UserForm_Initialize() Dim i As Long, dernlign As Integer ComboBox1.Clear ComboBox2.Clear ComboBox3.Clear ComboBox4.Clear ComboBox5.Clear ComboBox6.Clear ComboBox8.Clear ComboBox9.Clear ComboBox10.Clear ComboBox11.Clear ComboBox12.Clear TextBox1.Value = Date ' ou par exemple avec le jour en clair 'TextBox1.Value = Format(Date, "dddd dd/mm/yyyy") TextBox2.Value = "" TextBox3.Value = "" With Sheets("utile") dernlign = .Range("G65536").End(xlUp).Row For i = 1 To dernlign ComboBox10.AddItem .Cells(i, 7).Value Next i dernlign = .Range("A65536").End(xlUp).Row For i = 1 To dernlign ComboBox12.AddItem .Cells(i, 1).Value Next i End With End Sub
Voici l'exemple avec ce code :
http://www.cijoint.fr/cjlink.php?file=cj201006/cijAt0Qg7w.xls
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Re,
Je crois que le mieux est de mettre ton fichier sur un post avec le lien ci dessous que l'on voit sur pièce sinon on n'en sortira pas
https://www.cjoint.com/
Je crois que le mieux est de mettre ton fichier sur un post avec le lien ci dessous que l'on voit sur pièce sinon on n'en sortira pas
https://www.cjoint.com/
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
Bonjour,
Le fichier que tu as mis ne présente aucune erreur d'exécution même si l'on affecte la date à toutes les textbox et donc si chez toi cela "plante" c'est que tu n'as pas un excel correctement paramétré.
Le fichier que tu as mis ne présente aucune erreur d'exécution même si l'on affecte la date à toutes les textbox et donc si chez toi cela "plante" c'est que tu n'as pas un excel correctement paramétré.
Mike-31
- Messages postés
- 17301
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 20 janvier 2021
Salut,
Au niveau de ces deux codes
Private Sub TextBox1_Change()
Private Sub TextBox2_Change()
au niveau de cette ligne
If valeur = 2 Or valeur = 5 Then TextBox1 = TextBox1 & "/"
tu as ajouté &"/" qui n'a pour but que de doubler le séparateur date ex.09//06//2010 à la place de 09/06/2010
ensuite ce qui pose problème sont les combobox 8, 10 et 12 au niveau de ce code
Private Sub ComboBox8_Change()
With Sheets(ComboBox12.Value).Rows(3)
Set trouve = .Cells.Find(ComboBox10.Value)
If trouve Is Nothing Then
MsgBox "Utilisateur non trouvé"
Else
premcol = trouve.Column
dercol = trouve.Offset(0, 1).Column - 1
End If
End With
With Sheets(ComboBox12.Value)
Rng = .Range(.Cells(4, premcol), .Cells(4, dercol)).Address
End With
With Sheets(ComboBox12.Value).Range(Rng)
Set trouve1 = .Cells.Find(ComboBox8.Value)
If trouve1 Is Nothing Then
MsgBox "Matériel non trouvé"
Else
col = trouve1.Column
End If
End With
With Sheets(ComboBox12.Value)
derlig = .Range("C65536").End(xlUp).Row
If .Cells(5, col) <> "" Then
ComboBox11.AddItem CDate(.Cells(5, 3).Value)
End If
For i = 6 To derlig
If .Cells(i, col) <> "" And .Cells(i - 1, col) = "" Then
ComboBox11.AddItem CDate(.Cells(i, 3).Value)
End If
Next i
End With
explique ce qu'il doit se passer exactement pour le modifier ou gérer l'erreur
Au niveau de ces deux codes
Private Sub TextBox1_Change()
Private Sub TextBox2_Change()
au niveau de cette ligne
If valeur = 2 Or valeur = 5 Then TextBox1 = TextBox1 & "/"
tu as ajouté &"/" qui n'a pour but que de doubler le séparateur date ex.09//06//2010 à la place de 09/06/2010
ensuite ce qui pose problème sont les combobox 8, 10 et 12 au niveau de ce code
Private Sub ComboBox8_Change()
With Sheets(ComboBox12.Value).Rows(3)
Set trouve = .Cells.Find(ComboBox10.Value)
If trouve Is Nothing Then
MsgBox "Utilisateur non trouvé"
Else
premcol = trouve.Column
dercol = trouve.Offset(0, 1).Column - 1
End If
End With
With Sheets(ComboBox12.Value)
Rng = .Range(.Cells(4, premcol), .Cells(4, dercol)).Address
End With
With Sheets(ComboBox12.Value).Range(Rng)
Set trouve1 = .Cells.Find(ComboBox8.Value)
If trouve1 Is Nothing Then
MsgBox "Matériel non trouvé"
Else
col = trouve1.Column
End If
End With
With Sheets(ComboBox12.Value)
derlig = .Range("C65536").End(xlUp).Row
If .Cells(5, col) <> "" Then
ComboBox11.AddItem CDate(.Cells(5, 3).Value)
End If
For i = 6 To derlig
If .Cells(i, col) <> "" And .Cells(i - 1, col) = "" Then
ComboBox11.AddItem CDate(.Cells(i, 3).Value)
End If
Next i
End With
explique ce qu'il doit se passer exactement pour le modifier ou gérer l'erreur