VBA Selection feuille à partir d'une combobox

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. 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
    1. 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
      1. @ 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
        1. 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