VBA remplissage cellule en fonction des choix

Fermé
pseudomi Messages postés 4 Date d'inscription jeudi 1 décembre 2011 Statut Membre Dernière intervention 7 décembre 2011 - 7 déc. 2011 à 15:47
 pseudomi - 14 déc. 2011 à 16:35
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.


A voir également:

16 réponses

Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
Modifié par Le Pingou le 7/12/2011 à 22:42
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
Modifié par Le Pingou le 8/12/2011 à 16:40
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
8 déc. 2011 à 18:03
Bonjour,
Je vous prépare un exemple, ce sera plus compréhensible.
1
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
8 déc. 2011 à 21:41
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
Modifié par Le Pingou le 9/12/2011 à 23:21
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
13 déc. 2011 à 16:49
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
14 déc. 2011 à 14:52
Bonjour,
Voici une ma proposition pour remplir la feuille [pilo].
Votre fichier : https://www.cjoint.com/?ALooXDDsYQ9
1
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
14 déc. 2011 à 16:22
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
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
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
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
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
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
13 déc. 2011 à 16:27
Bonjour,
Merci pour l'information.
Je vais regardé votre demande, patience.
Salutations.
Le Pingou
0
Merci à vous
0
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
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
13 déc. 2011 à 22:15
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
Bonjour Pingou,

oui, en cliquant sur le bouton "grille" la 2ème feuille s'ouvrira "feuille pilo" actuellement
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 454
14 déc. 2011 à 10:49
Bonjour,
Merci, patience.
Salutations.
Le Pingou
0