VBA Excel est-il possible ?

Résolu
aurelie76 Messages postés 88 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
est-il possible de lancer un userform dans un autre userform ?

sub command_click()

...

optionbutton_click()

....

end sub

merci pour votre aide,

cdlt,

aurelie76
Configuration: Windows XP
Internet Explorer 7.0

11 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Bien sûr, userform.show fonctionne où tu veux.
    0
  2. aurelie76 Messages postés 88 Statut Membre 3
     
    bonjour Gbinforme,

    depuis ce matin je suis sur mon problème, et je travaille sur une feuille moins chargée qui me premet de tester juste la procédure que j'essaie de mettre en place, vraiment je n'arrive à rien et j'ai manipulé dans tous les sens :

    je récapitule: je veux modifer une donnée via un bouton d'option --> je liste les données de la colonne 1 (via une boucle for ...next) si la donnée est = à "idem", je ne modifie pas la valeur de la cellule, lorsque la valeur de la cellule est différente de "idem", je veux ouvrir un userform avec une frame de optionbutton pour que l'utilisateur choisisse la valeur à remplacer au même endroit. Autrement dit il y a un travail de recherche à faire pour trouver la donnée dans le tableau excel (ça c'est ok), et une fois qu'on l'a trouvé, on charge un userform avec bouton d'option pour remplacer la valeur, puis on revient dans le programme pour finir de lister la colonne, je n'arrive pas à faire le code : pour exemple : j'ai mis "idem" dans la cells(1,1) et rien dans la cells(2,1) et "idem" dans la cells(3,1), ca donne :

    Private Sub CommandButton1_Click()
    Sheets("feuil1").Select
    For i = 1 To 10 Step 1
    Cells(i, 1).Select

    If Cells(i, 1).Value = "idem" Then
    MsgBox ("YES")
    End If

    If Cells(i, 1) <> "idem" Then
    Call macro1
    End If
    Next i
    End Sub

    Sub macro1()
    UserForm1.Show
    End Sub

    et le code pour les optionbutton :

    Private Sub OptionButton1_Click()
    If OptionButton1 = True Then
    Cells(i,1).value=OptionButton1.Caption

    End If

    End Sub

    Private Sub OptionButton2_Click()
    If OptionButton1 = True Then
    Cells(i,1).value=OptionButton2.Caption

    End If

    End Sub

    dans le prog private optionButton ma varaible n'est pas reconnu et surtout je ne reviens pas sur ma feuille excel pour finir de listeer toute la colonne ,je te remercie encore pour ton aide, j'ai passé mon week end sur ce problème et rien trouvé sur le net ?

    bonne soirée,

    aurelie76
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    dans le prog private optionButton ma varaible n'est pas reconnu

    Quelle variable ?

    Tu devrais mettre ton classeur sur http://www.cijoint.fr/
    puis nous mettre ici le lien généré ce sera plus rapide que de chercher sur le net un souci de ton programme.
    0
  4. aurelie76 Messages postés 88 Statut Membre 3
     
    Rebonsoir et merci pour ta réponse super rapide, j'étais déjà reparti sur excel pour mon problème, la variable est i, je liste la colonne A les valeurs des cellules avec une boucle :

    For i = 1 To 10 Step 1
    Cells(i, 1).Select

    If Cells(i, 1).Value = "idem" Then
    MsgBox ("YES")
    End If

    si la valeur est différente de "idem", j'appelle une procédure pour charger la userform d'option bouton :

    If Cells(i, 1) <> "idem" Then
    Call macro1
    End If
    Next i
    End Sub

    Sub macro1()
    UserForm1.Show
    End Sub

    la macro1 se load et j'ai mes optionbutton et je veux remettre à la cells (i,1) la valeur choisi par l'optionbutton (optionbutton1.caption)

    Private Sub OptionButton1_Click()
    If OptionButton1 = True Then
    Cells(i,1).value=OptionButton1.Caption

    End If

    End Sub

    Private Sub OptionButton2_Click()
    If OptionButton1 = True Then
    Cells(i,1).value=OptionButton2.Caption

    End If

    End Sub

    Mais dans la procédure optionbutton, il ne reconnait pas la valeur de la variable i et surtout je ne reviens pas sur ma boucle définie par for i=1 to 10 ... pour finir de lister les cellules suivante de la colonne A.
    je veux bien mettre le code sur cijoint.fr mais dans le post d'avant j'ai fait un copier coller de mon source.

    Merci pour ton aide précieuse car il n'y a que toi qui se soit penché sur mon problème.

    bonne soirée,

    Aurelie76
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aurelie76 Messages postés 88 Statut Membre 3
     
    Gbiforme

    ci joint le classeur :

    http://www.cijoint.fr/cjlink.php?file=cj200901/cij42ldQiV.xls

    Merci encore 1000 fois,

    bonne soirée,

    aurelie
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Voici le classeur corrigé et comme je t'ai dit depuis le début, si tu avais défini ta variable publique tu te serais rendu compte que cela fonctionnait.

    J'ai mis un bouton pour lancer le processus.
    Ta gestion des options à cocher est incorrecte car pour passer il faut obligatoirement cocher l'autre option mais la macro tourne et elle va même jusqu'à la fin de tes données.

    Le classeur : http://www.cijoint.fr/cjlink.php?file=cj200901/cij8KQnvSO.xls
    0
  8. aurelie76 Messages postés 88 Statut Membre 3
     
    Rebonsoir cher Gbinforme,

    j'ai essayé ton code sans douter que cela fonctionnerait mais en le lancant, je voulais avoir le plaisir de le voir tourner, franchement, un très grand merci, je l'adapte à mon code d'origine et t'informe sur le résultat mais en tout cas, chapeau, j'avais pourtant bricolé avec public i as long mais sans succès. Je ne maitrise pas du tout VBA aussi, j'ai de très grosse lacune et ne comprend pas bien l'essentiel de cette fonction.

    Merci , merci, merci, je suis épuisée d'avoir passé mon week end la dessus.... on ne doit pas avoir le cerveau fait tous de la même manière, chapeau.

    bisous,

    aurelie
    0
  9. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    j'avais pourtant bricolé avec public i as long mais sans succès

    Ce n'est pas de bricolage qu'il s'agit mais de programmation et j'ai bien l'impression que tu ne mesures pas l'abîme qui sépare les deux !

    j'ai de très grosse lacune et ne comprend pas bien l'essentiel de cette fonction.

    Ce n'est pas une fonction mais une définition de variable.

    La programmation, pour qu'elle fonctionne demande de la rigueur et pas de l'à peu près.
    Le codage VBA ou autre possède une syntaxe précise comme tout langage et elle doit être respectée pour que ton logiciel comprenne ce que tu veux lui dire car si tu parles le français "comme une vache espagnole" on va essayer de traduire mais ton ordinateur ne s'y amusera jamais.

    0
    1. aurelie76 Messages postés 88 Statut Membre 3
       
      bonsoir Gbinforme,

      Merci pour ton aide précieuse, j'ai adapté à mon code et cela fonctionne. Désolé, je suis débutante, et le "bricolé" n'était pas là pour susciter ton "indignation". Je n'ai pas d'autre support que le net et les forums pour essayer de coder au mieux et je suis bien consciente de ne pas faire un programme structuré.
      Je suppose que pour un programmeur mon langage doit choquer mais .....

      ceci dit, peux tu m'éclairer sur la définition de la variable as long (est ce pour un chiffre ? ) et dans le cas d'une chaine de caractère, est ce également as long ou autre ?

      Merci vraiment et désolé encore pour ma syntaxe.

      bonne soirée,

      Aurelie
      0
  10. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Si tu sélectionnes "long" puis tu fais F1, tu vas avoir l'explication car tu as une mine d'explications dans l'aide excel sans aller sur le net et les forums, avec plein d'exemples.

    Si en plus tu cliques sur "voir aussi" puis "résumé des types de données" toutes tes questions vont trouver leur réponse...

    Si tu apprends à utiliser l'aide excel tu as instantanément beaucoup de réponses à tes questions et tu peux découvrir ainsi les propriétés des objets manipulés beaucoup mieux que sur les forums qui pourront eux te dépanner si ta recherche n'a rien donné. Ce que tu va trouver par toi même sera mieux intégré et compris.
    0
    1. aurelie76 Messages postés 88 Statut Membre 3
       
      Merci bcp Gbinform pour ton aide, très appréciée. Et aussi, d'aider les débutants.

      bonne soirée,

      Aurelie
      0
  11. aurelie76 Messages postés 88 Statut Membre 3
     
    Merci, Merci, Merci.
    0
  12. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Cela fait énormément plaisir de voir que tu ais apprécié ce petit coup de main.

    Et aussi, d'aider les débutants.

    C'est bien ceux qui en ont le plus besoin car tout le monde a eu au début de la difficulté pour apprendre à marcher tout seul...

    Je te remercie pour ton accueil et surtout si tu as d'autres questions n'hésites pas car sur ce forum tu trouveras quelqu'un qui saura t'aider probablement : à bientôt peut-être.
    0