VBA remplissage cellule en fonction des choix

pseudomi Messages postés 4 Statut Membre -  
 pseudomi -
Bonjour,

je crée sous excel un configurateur .
Ma 1ere feuille est sous forme de questionnaire + boutons de commande .(CBTxx)
Ces boutons lorsqu'ils sont cliqués deviennent vert, et quant ils sont recliqués reprennent leur couleur initiale. ( l'utilisateur doit sélectionné ou non le bouton)
Tout ceci fonctionne..
Cette page "formulaire" renseignée, incrémente automatiquement les données dans ma feuille 2.
En cellule A15, je dois avoir l'info du 1er bouton sélectionné (celui ci peut etre le 3eme de la liste par ex)
puis , en cellule A16, si A15 non vide, alors je veux l'info du 2ème bouton sélectionné... et ainsi de suite...
voici mon 1er code :

Sub creationpilo()
F2.Range("A1:M41").Clear

If CBT1.BackColor = &HFF00& Then
F2.Range("A15").Value = "SMTP Exchange Integration"
ElseIf CBT2.BackColor = &HFF00& Then
F2.Range("A15").Value = "SAP Integration"
ElseIf CBT3.BackColor = &HFF00& Then
F2.Range("A15").Value = "SMTP Notes Integration"
ElseIf CBT4.BackColor = &HFF00& Then
F2.Range("A15").Value = "WEB Client"
ElseIf CBT5.BackColor = &HFF00& Then
F2.Range("A15").Value = "XML File Polling"
ElseIf CBT6.BackColor = &HFF00& Then
F2.Range("A15").Value = "Python Extension"
ElseIf CBT8.BackColor = &HFF00& Then
F2.Range("A15").Value = "OCR Routing"
ElseIf CBT7.BackColor = &HFF00& Then
F2.Range("A15").Value = "V34"
ElseIf CBT9.BackColor = &HFF00& Then
F2.Range("A15").Value = "WEB Service"
ElseIf CBT10.BackColor = &HFF00& Then
F2.Range("A15").Value = "Autofax"
ElseIf CBT11.BackColor = &HFF00& Then
F2.Range("A15").Value = "API"

Else: F2.Range("A15").Value = " "

End If
End Sub

Ce code fonctionne, mais

Comment faire pour écrire, apres tout ce qui est decrit ci dessus,
l'info :
si la cellule (A15) de ma feuille F2 est non vide, alors on reprend toutes les étapes ci dessus pour écrire en A16.... et ainsi de suite pour A17, A18, etc...

désolée si le code n'est pas clair, mais je suis nouvelle utilisatrice de VBA, et c'est pas si simple...

Merci de l'aide que vous voudrez bien m'apporter.

16 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Eh bien là ce n'est pas facile de comprendre.
    Est-ce que par hasard vous voulez avoir sur la feuille 2 uniquement la liste des intitulés correspondant aux cases à cocher actives (soit verte) ...Oui, Non ?
    Peut-être que le fichier sur https://www.cjoint.com/ et poster le lien !
    Salutations.
    Le Pingou
    1
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je vous avais préparé une autre solution, la voici pour le plaisir.
    Exemple, supposition, les boutons de commande se trouvent sur un formulaire et l'intitulé du bouton est le texte correspondant.
    Voici un exemple de procédure :
    Sub creationpilo() 
    F2.Range("A1:M41").Clear 
    ' boucle sur les boutons de commande (par expl. 11 boutons) 
    For c = 1 To 11 
       If Me("CBT" & c).BackColor = &HFF00& Then 
           F2.Cells(15 + li, 1) = Me("CBT" & c).Caption ' en colonne [A] l'intitulé du contrôle 
           F2.Cells(15 + li, 2) = Me("CBT" & c).Name  ' en colonne [B] le nom du contrôle  
           li = li + 1 
       End If 
    Next c 
    End Sub 

    Salutations.
    Le Pingou
    1
  3. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je vous prépare un exemple, ce sera plus compréhensible.
    1
  4. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Voici l'exemple : https://www.cjoint.com/?3LivMxqNtz3
    Bien sûr il y a d'autres possibilités selon la structure que l'on adopte.
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je n'ai encore pas réussi à trouver la structure de votre fichier.
    Se serait plus simple avec l'exemple de votre fichier sur https://www.cjoint.com/ et poster le lien !

    --
    Salutations.
    Le Pingou
    1
  7. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Après la première lecture, il semble que l'on peut utiliser directement votre méthode qui utilise une feuille au lieu d'un formulaire.
    Question : à quoi doit servir le bouton de commande nommé [grille] ?
    Note, un peu étrange toutes ces procédures (macros). Sont-elles toutes utilisées ?
    1
  8. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Voici une ma proposition pour remplir la feuille [pilo].
    Votre fichier : https://www.cjoint.com/?ALooXDDsYQ9
    1
  9. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Juste au passage, j'ai découvert une anomalie,
    Une fois que j'ai terminé mes choix et que je désire changer de produit, les modules restes identiques ce qui est faux pour moi... !
    1
  10. pseudomi
     
    Génial...

    J'ai juste jeter un coup d'oeil, cela me semble très bien.
    En effet, j'ai encore des modifs à faire dont le changement de produit qui devrait etre le doublon du "remise à zéro", + remise à zéro de la feuille "pilo"
    je vais y travailler...

    Merci pour tout
    1
  11. Pseudomi
     
    Bonjour et merci de votre récativité,
    en fait j'ai trouvé un code qui fonctionne :

    Dim iLigne As Integer
    iLigne = 15
    If F1.CBT1.BackColor = &HFF00& Then
    'F2.Range("A15").Value = "SMTP Exchange Integration"
    F2.Cells(iLigne, 1).Value = "SMTP Exchange Integration"
    iLigne = iLigne + 1
    End If
    If F1.CBT2.BackColor = &HFF00& Then
    'F2.Range("A15").Value = "SMTP Exchange Integration"
    F2.Cells(iLigne, 1).Value = "SAP Integration"
    iLigne = iLigne + 1
    End If

    etc...

    Merci à vous et à bientot
    0
  12. Pseudomi
     
    bien, merci,
    mais l'intitulé dépend du bouton sélectionné, est ce que dans votre code ci dessus, l'intitulé est pris en compte ?
    0
  13. Pseudomi
     
    bonjour et merci pour ce code... Cela me donne plein d'idées.
    Les boutons CBT1 - CBT11 dépendent d'une liste déroulante placée dans mon formulaire,
    si je choisis un produit x je n'aurai que le cbt1-2-6...
    un produit y me donnera cbt1-5-7, etc...
    Puis je donc inserer plusieurs userform ? Avec ensuite toujours le meme principe de bouton cliqué?

    En tout les cas, efficace et sympa.
    Merci beaucoup
    0
  14. pseudomi
     
    Bonjour Pingou,

    je viens de charger mon fichier disponible sur le lien ci joint
    http://cjoint.com/?3LnqkS0kqfR
    En fait, ma "Function creationpilo(t)" ne fonctionne pas correctement, juste sur les 2 premieres lignes, mais le reste ne s insere pas.
    Le 1er onglet "configurateur" est l onglet ou sont selectionnés les besoins.
    Dans le 2ème onglet "pilo" doivent apparaitre toutes ces selections comme une synthese (et je viendrai y ajouter les prix, les references, les marges, etc...) dont mes modules cliqués en vert
    ces modules sont differents selon le produit selectionné en "CB1"
    Auriez vous une idée svp ?
    Merci à vous
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Merci pour l'information.
      Je vais regardé votre demande, patience.
      Salutations.
      Le Pingou
      0
  15. pseudomi
     
    je le renommerai plus tard , mais une fois que l utilisateur aura terminé de selectionner le produit, les nombres de canaux, les modules, etc... il devra cliquez sur ce bouton de commande qui devra générer le 2 ème onglet.
    Tous les autres onglets seront cachés et bref, la ou les 2 pages seront plus "belles"
    En effet il y a plein de code ou de ^procedure, mais a chaque fois j'en utilise ou modifie une...
    Je n ai pas l habitude de travailler en VBA, je fais de mon mieux pour "bidouiller".
    Désolée
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      mais une fois que l utilisateur aura terminé de selectionner le produit, les nombres de canaux, les modules, etc... il devra cliquez sur ce bouton de commande qui devra générer le 2 ème onglet.
      Est-ce que c'est votre réponse à la question du bouton [grille] de la feuille [Configurateur] ?

      Que voulez-vous dire par générer le 2ième onglet ?

      Salutations.
      Le Pingou
      0
  16. pseudomi
     
    Bonjour Pingou,

    oui, en cliquant sur le bouton "grille" la 2ème feuille s'ouvrira "feuille pilo" actuellement
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Merci, patience.
      Salutations.
      Le Pingou
      0