Eh oui, un pouce levé !! C'est formidable une fois de plus de vous suivre ! J'ai fait une feuille de calcul avec une vitesse horaire, et à l'ouverture, j'ai mon petit "UserForm" qui en s'ouvrant, me demande combien de km je désire faire aujourd'hui !!! C'est formidable !!! Grand merci cher professeur !!!!
8 років тому
Bonjour George, ravi de vous retrouver. Vous avez ainsi pu constater à quel point il est simple de commander l'ouverture d'un formulaire en VBA Excel, juste avec un petit bout de code placé dans la bonne procédure événementielle, celle de l'ouverture du classeur. Ainsi, l'utilisateur n'a pas la main sur la feuille, il doit tout gérer depuis le Userform. Merci infiniment pour votre commentaire, toujours aussi plaisant.
De rien Mr, et pour tout vous dire, j'ai vraiment apprécier, car je ne connaissais point la façon justement de faire apparaître instantanément les "UserForm" sur Excel avec le VBA !! C'est chose faite désormais !! Et c'est moi qui vous remercie de me donner tant de joie, car en plus vous me répondez !! Bonne soirée, et encore merci !!
8 років тому+1
C'est tout naturel George, c'est une chance pour moi de vous avoir
Bonsoir, d'abord merci beaucoup pour vos tutoriels très bien fait. Pour l'ouverture d'un userforme dans un classeur on utilise la commande show (ici, " interface. Show ") mais si je place un bouton ok dans un userforme quelle est la commande pour le fermer après avoir cliquer sur le bouton ok ? Merci d'avance.
Рік тому+1
Bonjour Alain. Vous pouvez utiliser, entre autres, la méthode Hide.
Bonjour J'aurais juste une petite question. Je souhaite imprimer mon formulaire. J'ai mis un bouton et le code : FormRecherche.printform Cela fonctionne mais en noir et blanc et en portrait. Par contre j'aimerai qu'il imprime en couleur et en landscape. Cela est-il possible ou pas? Merci Bonne journée Thierry
7 років тому+1
Bonjour Thierry, C'est plus compliqué qu'il n'y paraît, les réglages de page doivent être réalisés avant, par le code VBA et ainsi a priori répercutés sur le UserForm comme l'indiquent les commentaires postés sur internet. Je n'ai pas eu l'occasion de tester, mais le code me semble intéressant, je vous fournis l'url : social.msdn.microsoft.com/Forums/en-US/def468a2-a317-496e-85a1-ab37bd449264/printing-vba-userform-as-landscape?forum=isvvba
Bonjour, Je me permets de vous contacter car j'aime bien vos tutos. J'espère que vous pourrez me donner un petit coup de main. J'ai une feuille excel où il y a une base de données(Historic). Sur une autre feuille (Recherche) de mon classeur j'ai mis une liste de validation avec mon critère de recherche(liste de barcode), un commandbutton et un listbox pour mettre les résultats de la recherche. J'ai écrit le code vba du button mais rien ne s'incrit dans le listbox. Voici le code et peut-être que je l'ai mal écrit ou il manque quelque chose. J'ai aussi essayer au début de mettre se code dans un userform avec un combobox et un listbox, le combobox fonctionne mais rien ne vient dans le listbox. Merci pour votre aide. Bonne journée Thierry Private Sub cbrechercherbarcode_Click() 'déclaration des variables Dim n Dim derniereligne As Integer, x As Integer 'affectation des variables n = Range("D8") 'validation list du critère 'on récupère la dernière ligne de la source de données If Sheets("Historic").Cells(Rows.Count, 1).End(xlUp).Row = 1 Then derniereligne = 2 Else derniereligne = Sheets("Historic")Cells(Rows.Count, 1).End(xlUp).Row End If 'on efface le contenu de la liste à chaque recherche ListBoxrecherche.Clear ListBoxrecherche.BackColor = RGB(0, 255, 255) 'on parcours la source de données de la ligne à la dernière ligne For x = 1 To derniereligne 'on teste le critère ,ici le contenu de cboxbarcode avec la source de données (x pour les lignes et 1 pour colonne du critère = barcode) If Cells(x, 1) = n Then 'on écrit dans la listboxrecherche Me.ListBoxrecherche.AddItem Cells(x, 1) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 1) = Cells(x, 2) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 2) = Cells(x, 3) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 3) = Cells(x, 4) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 4) = Cells(x, 5) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 5) = Cells(x, 6) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 6) = Cells(x, 7) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 7) = Cells(x, 8) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 8) = Cells(x, 9) Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 9) = Cells(x, 10) 'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 10) = Cells(x, 11) 'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 11) = Cells(x, 12) 'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 12) = Cells(x, 13) End If Next x End Sub
7 років тому+1
Bonsoir, avez vous testé avec un Msgbox par exemple si le code rentre bien dans votre boucle puis dans votre If, Msgbox Cells(x, 1). Si aucun message ne s'affiche à l'écran, c'est que le problème vient d'ailleurs. Ensuite, même si je ne pense pas que l'erreur vienne de là car VBA est permissif, mais vous codez ceci : Me.ListBoxrecherche.AddItem Cells(x, 1) Or Cells(x, 1) désigne un objet cellule alors que vous souhaitez ajouter son contenu dans la zone de liste, donc il serait préférable en VBA d'écrire ceci : Me.ListBoxrecherche.AddItem Cells(x, 1).Value
Eh oui, un pouce levé !! C'est formidable une fois de plus de vous suivre ! J'ai fait une feuille de calcul avec une vitesse horaire, et à l'ouverture, j'ai mon petit "UserForm" qui en s'ouvrant, me demande combien de km je désire faire aujourd'hui !!! C'est formidable !!! Grand merci cher professeur !!!!
Bonjour George, ravi de vous retrouver. Vous avez ainsi pu constater à quel point il est simple de commander l'ouverture d'un formulaire en VBA Excel, juste avec un petit bout de code placé dans la bonne procédure événementielle, celle de l'ouverture du classeur. Ainsi, l'utilisateur n'a pas la main sur la feuille, il doit tout gérer depuis le Userform. Merci infiniment pour votre commentaire, toujours aussi plaisant.
De rien Mr, et pour tout vous dire, j'ai vraiment apprécier, car je ne connaissais point la façon justement de faire apparaître instantanément les "UserForm" sur Excel avec le VBA !! C'est chose faite désormais !! Et c'est moi qui vous remercie de me donner tant de joie, car en plus vous me répondez !! Bonne soirée, et encore merci !!
C'est tout naturel George, c'est une chance pour moi de vous avoir
Bonjour et merci à vous pour cette astuce !
C'est un plaisir, merci à vous pour ce message.
merci ce tuto est très bien expliqué. il m'a beaucoup aidé. Bonne journée !
Bonjour Laetitia. Je vous en prie et merci à vous pour ce message en retour.
Bonsoir, d'abord merci beaucoup pour vos tutoriels très bien fait.
Pour l'ouverture d'un userforme dans un classeur on utilise la commande show (ici, " interface. Show ") mais si je place un bouton ok dans un userforme quelle est la commande pour le fermer après avoir cliquer sur le bouton ok ?
Merci d'avance.
Bonjour Alain. Vous pouvez utiliser, entre autres, la méthode Hide.
Bonjour
J'aurais juste une petite question.
Je souhaite imprimer mon formulaire.
J'ai mis un bouton et le code : FormRecherche.printform
Cela fonctionne mais en noir et blanc et en portrait.
Par contre j'aimerai qu'il imprime en couleur et en landscape.
Cela est-il possible ou pas?
Merci
Bonne journée
Thierry
Bonjour Thierry,
C'est plus compliqué qu'il n'y paraît, les réglages de page doivent être réalisés avant, par le code VBA et ainsi a priori répercutés sur le UserForm comme l'indiquent les commentaires postés sur internet. Je n'ai pas eu l'occasion de tester, mais le code me semble intéressant, je vous fournis l'url :
social.msdn.microsoft.com/Forums/en-US/def468a2-a317-496e-85a1-ab37bd449264/printing-vba-userform-as-landscape?forum=isvvba
bonjour,
Merci pour la réponse, oui j'ai vu cela.
Je vais essayer
Merci pour votre aide
Bonne journée
Thierry
Je vous en prie, je n'ai pas eu l'occasion de tester mais je le note dans les vidéos éventuelles à monter, car ce genre d'astuces peut rendre service.
oui et bien expliqué car cela à l'ère un peu compliqué à mettre en œuvre et avec un tuto bien expliqué je pense que cela devrait mieux passer.
Merci
Merci
Je vous en prie Fatimaa. Merci à vous pour ce message.
Bonjour,
Je me permets de vous contacter car j'aime bien vos tutos.
J'espère que vous pourrez me donner un petit coup de main.
J'ai une feuille excel où il y a une base de données(Historic).
Sur une autre feuille (Recherche) de mon classeur j'ai mis une liste de validation avec mon critère de recherche(liste de barcode), un commandbutton et un listbox pour mettre les résultats de la recherche.
J'ai écrit le code vba du button mais rien ne s'incrit dans le listbox.
Voici le code et peut-être que je l'ai mal écrit ou il manque quelque chose.
J'ai aussi essayer au début de mettre se code dans un userform avec un combobox et un listbox, le combobox fonctionne mais rien ne vient dans le listbox.
Merci pour votre aide.
Bonne journée
Thierry
Private Sub cbrechercherbarcode_Click()
'déclaration des variables
Dim n
Dim derniereligne As Integer, x As Integer
'affectation des variables
n = Range("D8") 'validation list du critère
'on récupère la dernière ligne de la source de données
If Sheets("Historic").Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
derniereligne = 2
Else
derniereligne = Sheets("Historic")Cells(Rows.Count, 1).End(xlUp).Row
End If
'on efface le contenu de la liste à chaque recherche
ListBoxrecherche.Clear
ListBoxrecherche.BackColor = RGB(0, 255, 255)
'on parcours la source de données de la ligne à la dernière ligne
For x = 1 To derniereligne
'on teste le critère ,ici le contenu de cboxbarcode avec la source de données (x pour les lignes et 1 pour colonne du critère = barcode)
If Cells(x, 1) = n Then
'on écrit dans la listboxrecherche
Me.ListBoxrecherche.AddItem Cells(x, 1)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 1) = Cells(x, 2)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 2) = Cells(x, 3)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 3) = Cells(x, 4)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 4) = Cells(x, 5)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 5) = Cells(x, 6)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 6) = Cells(x, 7)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 7) = Cells(x, 8)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 8) = Cells(x, 9)
Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 9) = Cells(x, 10)
'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 10) = Cells(x, 11)
'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 11) = Cells(x, 12)
'Me.ListBoxrecherche.List(Me.ListBoxrecherche.ListCount - 1, 12) = Cells(x, 13)
End If
Next x
End Sub
Bonsoir, avez vous testé avec un Msgbox par exemple si le code rentre bien dans votre boucle puis dans votre If, Msgbox Cells(x, 1). Si aucun message ne s'affiche à l'écran, c'est que le problème vient d'ailleurs. Ensuite, même si je ne pense pas que l'erreur vienne de là car VBA est permissif, mais vous codez ceci :
Me.ListBoxrecherche.AddItem Cells(x, 1)
Or Cells(x, 1) désigne un objet cellule alors que vous souhaitez ajouter son contenu dans la zone de liste, donc il serait préférable en VBA d'écrire ceci :
Me.ListBoxrecherche.AddItem Cells(x, 1).Value
bonjour, merci je vais essyer. bon weekend