Vba excel
Résolu/Fermé
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
-
11 avril 2009 à 19:24
hich24 Messages postés 1633 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 3 novembre 2024 - 15 avril 2009 à 17:01
hich24 Messages postés 1633 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 3 novembre 2024 - 15 avril 2009 à 17:01
A voir également:
- Vba excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
13 réponses
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
12 avril 2009 à 18:14
12 avril 2009 à 18:14
Bonjour,
C'est tout sauf clair sur se que vous désirez réaliser.
Le code : UserForm2.Show ouvre la [UserForm]
Ensuite vous devez initialiser cette dernière avec cette procédure qui suit qui doit être placée dans le la partie code de la [Userform].
Private Sub UserForm_Initialize()
listbox1.List = Range("A1:M1").Value
End Sub
C'est tout sauf clair sur se que vous désirez réaliser.
Le code : UserForm2.Show ouvre la [UserForm]
Ensuite vous devez initialiser cette dernière avec cette procédure qui suit qui doit être placée dans le la partie code de la [Userform].
Private Sub UserForm_Initialize()
listbox1.List = Range("A1:M1").Value
End Sub
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
14 avril 2009 à 21:58
14 avril 2009 à 21:58
Bonjour hich24,
Suite à votre message et ma réponse, j'ai recontrôlé le code et il fonctionne correctement, la zone de liste est renseignée avec tous les résultats de la recherche.
Il se trouve que dans le code que j'ai adapté j'ai oublié le paramètre (r) qui tient compte de la boucle de recherche, je vous prie de m'excuser.
Voici la ligne correcte : (le "r" remplace le "0")
MesData(r, n) = Cells(1, (n + 8)) ' le 8 = première.......
Merci de votre compréhension.
Suite à votre message et ma réponse, j'ai recontrôlé le code et il fonctionne correctement, la zone de liste est renseignée avec tous les résultats de la recherche.
Il se trouve que dans le code que j'ai adapté j'ai oublié le paramètre (r) qui tient compte de la boucle de recherche, je vous prie de m'excuser.
Voici la ligne correcte : (le "r" remplace le "0")
MesData(r, n) = Cells(1, (n + 8)) ' le 8 = première.......
Merci de votre compréhension.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
11 avril 2009 à 23:34
11 avril 2009 à 23:34
Bonjour,
Pas besoin de [ADDITEM], simplement renseigner la listbox dans la procédure d'initialisation de la [UserForm] comme suit:
Salutations.
Jean-Pierre
Pas besoin de [ADDITEM], simplement renseigner la listbox dans la procédure d'initialisation de la [UserForm] comme suit:
Private Sub UserForm_Initialize() listbox1.List = Range("A1:M1").Value End Sub--
Salutations.
Jean-Pierre
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
12 avril 2009 à 12:01
12 avril 2009 à 12:01
merci , pour avoire repondu a question mais un tout petit detail :
cette plage de cellule est en quelques sorte un stock temporaire , puisque je doit chercher des information sur
une liste enregistrésur la feuille (pas de probléme) ---> il sont regroupé sur cette plage ------> tranferer sur la listbox avec une boucle
et voisie le code utilisé :
Sub Formeautomatique245_QuandClic()
With sheets("test")
nombre = Range("h1").Value ' donne le nombre de ligne enregistrée
For r = 1 To 1
If Cells(r, 5).Value = Range("H3").Value + 1 Then 'cherche une date qui représente la date indiqué + 1 jour
Range("A" & r & ":E" & r).Select 'selectionne les cellule qui contiennes les information de cette date
Range("i1:m1").Value = Selection.Value 'transfére les donné sur la plage ('I1:M1')pour remplire en suite la listbox
UserForm2.ListBox1 = "(??????)" ' la rowsource ne marche pas parceque les informations sont ajouté une apres autre
End If
Next r ' la ligne suivante
End With
UserForm2.Show
End Sub
merci encore une fois
cette plage de cellule est en quelques sorte un stock temporaire , puisque je doit chercher des information sur
une liste enregistrésur la feuille (pas de probléme) ---> il sont regroupé sur cette plage ------> tranferer sur la listbox avec une boucle
et voisie le code utilisé :
Sub Formeautomatique245_QuandClic()
With sheets("test")
nombre = Range("h1").Value ' donne le nombre de ligne enregistrée
For r = 1 To 1
If Cells(r, 5).Value = Range("H3").Value + 1 Then 'cherche une date qui représente la date indiqué + 1 jour
Range("A" & r & ":E" & r).Select 'selectionne les cellule qui contiennes les information de cette date
Range("i1:m1").Value = Selection.Value 'transfére les donné sur la plage ('I1:M1')pour remplire en suite la listbox
UserForm2.ListBox1 = "(??????)" ' la rowsource ne marche pas parceque les informations sont ajouté une apres autre
End If
Next r ' la ligne suivante
End With
UserForm2.Show
End Sub
merci encore une fois
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
13 avril 2009 à 14:30
13 avril 2009 à 14:30
merci a ton aide presieuse , et excuse mon désordre ,
cette methode est valable pour recuperer des ligne succisive
alors que dans mon cas je doit chercher a chaque fois une valeur puis ajouter la ligne a la listbox , et apres et seulment apres avoir trouver tout les valeur rechercher et copier leur ligne sur la listbox
mon code doit afficher la liste
cette methode est valable pour recuperer des ligne succisive
alors que dans mon cas je doit chercher a chaque fois une valeur puis ajouter la ligne a la listbox , et apres et seulment apres avoir trouver tout les valeur rechercher et copier leur ligne sur la listbox
mon code doit afficher la liste
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
13 avril 2009 à 14:44
13 avril 2009 à 14:44
Bonjour hich24,
Merci pour l'information.
Cette fois j'ai bien compris votre demande, je vous donnes réponse en fin de journée.
Merci pour l'information.
Cette fois j'ai bien compris votre demande, je vous donnes réponse en fin de journée.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
13 avril 2009 à 20:33
13 avril 2009 à 20:33
Bonjour hich24,
Je vous propose ce qui suit :
Créer une variable tableau [MesData] qui contiendra toutes les valeurs cherchées et ensuite on renseignera la propriété [List] de la zone de liste (listbox).
Votre procédure adaptée :
Je vous propose ce qui suit :
Créer une variable tableau [MesData] qui contiendra toutes les valeurs cherchées et ensuite on renseignera la propriété [List] de la zone de liste (listbox).
Votre procédure adaptée :
Sub Formeautomatique245_QuandClic() Dim MesData() As Variant With sheets("test") nombre = Range("h1").Value ' donne le nombre de ligne enregistrée ReDim MesData(3, 5) ' ou 3 = le nombre de votre boucle "r" défini sous « To … » et 5 = le nombre de colonne de la plage de transfert "i1:m1". For r = 1 To 1 If Cells(r, 5).Value = Range("H3").Value + 1 Then 'cherche une date qui représente la date indiqué + 1 jour Range("A" & r & ":E" & r).Select 'selectionne les cellule qui contiennes les information de cette date Range("i1:m1").Value = Selection.Value 'transfére les donné sur la plage ('I1:M1')pour remplire en suite la listbox For n = 1 To 4 ' nonbre de colonne MesData(0, n) = Cells(1, (n + 8)) ' le 8 = première colonne de la plage "I1:M1" est 9 -->> 9-1 Next ‘ **** plus valable ***UserForm2.ListBox1 = "(??????)" ' la rowsource ne marche pas parce que les informations sont ajouté une apres autre End If Next r ' la ligne suivante End With UserForm1.ListBox1.List = MesData UserForm2.Show End Sub
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
14 avril 2009 à 15:24
14 avril 2009 à 15:24
merci merci merci , pour votre aide
je sait que fait trop mais votre code n'ajoute que la derrniere ligne trouvé alors que mois je veut que a chaque fois ajouter la ligne qui remplie la condition
- c'est pour ca que je doit vider la zone ( " I1:M1 " ) pour est mettre la seconde ligne trouvé puis envoyer a la listbox ; ensuite vider la plage et poursuivre la recherche ?
merci encore pour votre inorme effort
je sait que fait trop mais votre code n'ajoute que la derrniere ligne trouvé alors que mois je veut que a chaque fois ajouter la ligne qui remplie la condition
- c'est pour ca que je doit vider la zone ( " I1:M1 " ) pour est mettre la seconde ligne trouvé puis envoyer a la listbox ; ensuite vider la plage et poursuivre la recherche ?
merci encore pour votre inorme effort
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
14 avril 2009 à 19:00
14 avril 2009 à 19:00
Bonjour,
Cette partie du code enregistre chacune de vos recherches :
For n = 1 To 4 ' nonbre de colonne
MesData(0, n) = Cells(1, (n + 8)) ' le 8 = première colonne de la plage "I1:M1" est 9 -->> 9-1
Next
Avez-vous essayé .......?
Merci de votre réponse.
Cette partie du code enregistre chacune de vos recherches :
For n = 1 To 4 ' nonbre de colonne
MesData(0, n) = Cells(1, (n + 8)) ' le 8 = première colonne de la plage "I1:M1" est 9 -->> 9-1
Next
Avez-vous essayé .......?
Merci de votre réponse.
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
15 avril 2009 à 13:54
15 avril 2009 à 13:54
bonjour , je ne trouve pas les mot pour vous remercie , mais je me contante de dire merci infiniment pour le temps que vous avait consacrée a mon probléme , ca marche tres bien , juste une petit retouche pour demmarer le remplissage a la premier colonne de la listbox j'ai changé
MesData(r, n ) = Cells(1, (n + 8)) en =====> MesData(r, n - 1) = Cells(1, (n + 8))
merci encore et au revoire
MesData(r, n ) = Cells(1, (n + 8)) en =====> MesData(r, n - 1) = Cells(1, (n + 8))
merci encore et au revoire
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
15 avril 2009 à 16:06
15 avril 2009 à 16:06
juste un petit question : pourquoi il met des lignes vide dans la list ?
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
15 avril 2009 à 16:37
15 avril 2009 à 16:37
Bonjour hich24,
Il serait bien de faire un contrôle pas à pas sur le code pour voir le résultat de la recherche.
A défaut faire un contôle sur le résultat et éliminer les enregistrement vides.
Il serait bien de faire un contrôle pas à pas sur le code pour voir le résultat de la recherche.
A défaut faire un contôle sur le résultat et éliminer les enregistrement vides.
hich24
Messages postés
1633
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
3 novembre 2024
753
15 avril 2009 à 17:01
15 avril 2009 à 17:01
merci