VBA Selection feuille à partir d'une combobox

dedemx Messages postés 8 Statut Membre -  
Submin Messages postés 463 Statut Membre -
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

  1. Submin Messages postés 463 Statut Membre 226
     
    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
  2. Utilisateur anonyme
     
    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
  3. dedemx Messages postés 8 Statut Membre
     
    @ 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
  4. Submin Messages postés 463 Statut Membre 226
     
    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