Vba excel

Résolu
hich24 Messages postés 1686 Statut Membre -  
hich24 Messages postés 1686 Statut Membre -
Bonjour, si il veut plait je veut affiché une plage de cellule A1:M1 sur une ligne de listbox a l'aide de ADDITEM
s'possible ?
merci pour votre aide
Configuration: Windows XP
Internet Explorer 6.0
excel 2003

13 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
    1
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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.
    1
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    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
    0
  4. hich24 Messages postés 1686 Statut Membre 753
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hich24 Messages postés 1686 Statut Membre 753
     
    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
    0
  7. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour hich24,
    Merci pour l'information.
    Cette fois j'ai bien compris votre demande, je vous donnes réponse en fin de journée.
    0
  8. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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 :

    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
    0
  9. hich24 Messages postés 1686 Statut Membre 753
     
    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
    0
  10. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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.
    0
  11. hich24 Messages postés 1686 Statut Membre 753
     
    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
    0
  12. hich24 Messages postés 1686 Statut Membre 753
     
    juste un petit question : pourquoi il met des lignes vide dans la list ?
    0
  13. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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.
    0
  14. hich24 Messages postés 1686 Statut Membre 753
     
    merci
    0