VBA Selection feuille à partir d'une combobox

Fermé
dedemx Messages postés 5 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 9 mai 2012 - 21 mars 2012 à 12:29
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 - 22 mars 2012 à 12:20
Bonjour le forum, Bonjour aux gentils bienfaiteurs qui pourront m'aider.

Ceci est mon 1er post (excuser mes erreurs de syntaxes ou autres).

Je vous explique la situation, cela fait maintenant 1mois - 1 mois et demis que je me suis mis au VBA, en autodidacte, à base de longue lecture de forum, mais là, je suis face à un cas délicat (ou pas...) enfin quoi qu'il en soit je ne trouve pas de solution d'ou mon post.

Alors voilà, j'ai créé un petit formulaire afin de rentrer des données dans une feuille..jusqu'à là rien d'extraordinaire.
Dans ce formulaire il y a une ComboBox, et je voudrai qu'en fonction de la selection de cette ComboBox VBA copie les données dans telle ou telle feuille.

ex:
-combobox 1 = tralala qd je clique sur valider (apres avoir remplie toute les autres données du formulaire) les données seront copiées sur la feuille tralala
-combobox 1 = popol qd je clique sur valider (apres avoir remplie toute les autres données du formulaire) les données seront copiées sur la feuille popol

Etc...


Merci de vos réponses




4 réponses

Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
21 mars 2012 à 12:39
Bonjour,

J'ai peut etre pas compris exactement la question.
Voici ce que je te propose et tu me donnerais plus d'indication

Sheets(1).Cells(1,1) = ComboBox1.Value

Cela ne fonctionne pas?
il va de sois qu'il faut rajouter toutes les autres cases de ton formulaire et tu met une condition If qui vérifie si tous les champs de ton formulaire sont rempli avant de copier ça dans le tableau ou sinon un petit Msgbox pour dire que les champs ne sont pas remplis...

Veux tu que je te donne un exemple complet? ou c'était seulement la synthaxe pour le combobox que tu souhaitais?
0
Utilisateur anonyme
21 mars 2012 à 12:58
Bonjour,

Serait-ce plutôt ça ton besoin ?

Option Explicit

Private Sub cmd_Quitter_Click()
    Unload Me
End Sub

Private Sub ComboBox1_Change()

    Dim NomFle As String
    
    NomFle = ComboBox1.Text

    Sheets(NomFle).Range("A1").Value = TextBox1.Text

End Sub

Private Sub UserForm_Activate()
    InitCombo
End Sub


Public Sub InitCombo()

    UserForm1.ComboBox1.AddItem ("tralala")
    UserForm1.ComboBox1.AddItem ("popol")

End Sub
'


Cdt

Lupin
0
dedemx Messages postés 5 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 9 mai 2012
21 mars 2012 à 16:12
@ submin

ton idée de: Sheets("1").Cells(1,1) = ComboBox1.Value
ne marchait pas, j'ai remplacé par sheets().range()=CBox.value
et c'était bon

du coup j'ai quelque chose comme ca

if sheets("Code").range("A2")= ComboBox1.value then

Sheets("bd1").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'navire
Range("bd1!a4").Value = ComboBox1.Value
ComboBox1 = Application.CutCopyMode
ComboBox1 = ""

end if

if sheets("Code").range("A3")= ComboBox1.value then

Sheets("bd2").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'navire
Range("bd2!a4").Value = ComboBox1.Value
ComboBox1 = Application.CutCopyMode
ComboBox1 = ""

end if




est il possible de lié les "if" ou je serai obliger de répéter l'operation pour le nombre de feuille que je dois lier ?
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
22 mars 2012 à 12:20
Essai cela avec les déclaration de variable qui vont bien...
Je ne suis pas du tout certain que ça marche pour le : Range("bd" & i & "!a4"). mais pour le reste ça devrait marcher sans problème... du moins j'espère, je ne suis pas chez moi pour tester donc possible qu'il y ai quelque erreur que je vais regarder plus profondement cette après midi



for i=1 to sheets.Count  - 1
'alors petite explication, j'ai mis -1 car je suppose que tu ne veux pas sélectionner ta feuille "code"

if sheets("Code").range("A" & i + 1 & "")= ComboBox1.value then

Sheets("bd" &  i & "").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'navire
Range("bd" & i & "!a4").Value = ComboBox1.Value
ComboBox1 = Application.CutCopyMode
ComboBox1 = ""

end if
 
next i
0