IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Problème pour faire une boucle dans une userform


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [VBA-E] Problème pour faire une boucle dans une userform
    Bonjour,

    ça fait à peu près 2h que je cherche partout et j'en ai ras-le-bol parceque je ne trouve rien alors je m'adresse à vous, ô maîtres surpuissants de la programmation VB.

    Bon, voilà mon soucis :

    J'ai une liste de deux colonnes dans Excel.
    Je veux faire une recherche dans la colonne de droite (avec question par userform), et avoir le retour de la recherche de la colonne de gauche correspondant + celle de droite.
    Je voulais donc faire une boucle pour faire la recherche et afficher le résultat à chaque itération. Soit un label1 (colonne gauche) ou textbox1, et un label2(colonne de droite) ou textbox2.
    Le résultat s'affiche sous la question et la userform s'agrandit à chaque itération.
    Comme je veux pas me taper à réécrire label 1, label 2, label 3... pour chaque if... then ... goto... Je préférais passer par un Do... While...
    Le problème c'est que je ne sais pas comment définir une variable qui me permette de changer l'expression label1.caption=activecell.value par label"a".caption=activecell.value.

    Est-ce que quelqu'un saurait me résoudre ce problème?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("label" & i).caption=activecell.value
    Mais je n'utiliserais pas "Activecell.value mais l'adresse de la cellule

    NB - "Me." remplace le nom de l'userform
    Et jète un oeil , ça pourrait te donner des idées...

    PS - Bienvenue sur le forum

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci ouskel'n'or, je vais tester ça.
    Pour ton post, j'avais déjà vu, mais pas trouver ce que je cherchais, mais c'est un bon truc.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Ok, ça marche! Excellent
    Voici mon code, si vous voyez comment l'améliorer, je suis preneur!
    Je pense à un addlabel mais je crois que ça ne marche que pour les balloons.
    Le userform contient 1 textbox et 1 command button click à coté, et en dessous 2 label sur chaque ligne. D'ailleurs comment puis-je rajouter une scrollbar?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub CommandButton1_Click()
    Range("b1:b" & ActiveSheet.UsedRange.Rows.Count).Select
        donne = TextBox1.Text
        x = 2
        y = 1
        a = 1
        b = 2
     
        Tag = Height
            Do While x > y
                cellule = ActiveCell.Value
                ActiveCell.FormulaR1C1 = "=ROW()"
                y = ActiveCell.Value
                ActiveCell.Value = cellule
            Selection.Find(What:=donne, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
                cellule = ActiveCell.Value
                ActiveCell.FormulaR1C1 = "=ROW()"
                x = ActiveCell.Value
                ActiveCell.Value = cellule
     
        UserForm1.Controls("label" & b).Caption = ActiveCell.Value 'merci pour la phrase^^
            cellule = ActiveCell.Value
            ActiveCell.FormulaR1C1 = "=RC[-1]"
            valeur = ActiveCell.Value
            ActiveCell.Value = cellule
        UserForm1.Controls("label" & a).Caption = valeur
        a = a + 2
        b = b + 2
        Height = Height + 23
    Loop
    End Sub

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Garlim
    D'ailleurs comment puis-je rajouter une scrollbar?
    comme tu as placé les autres contrôles.
    Tu places le min sur le N° de la première ligne que tu souhaites afficher et le max sur la dernière, max qui évoluera en fonction du nombre de lignes renseignées.
    Chaque déplacement entraînant la modification de value, cette value devient le N° de ligne. Juste pour le principe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. Réponses: 2
    Dernier message: 21/05/2011, 13h30
  3. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  4. [PHP 5.0] Manipulation XML une boucle dans une boucle
    Par lepotier dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2010, 12h15
  5. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo