IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Combiner tous les possibilités de deux ComboBox


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Combiner tous les possibilités de deux ComboBox
    Bonjour à toutes et à tous,

    J'ai un classeur Excel avec deux combobox contenues dans les cellules A1 et A2. Ces deux combobox ont pour source une plage commune de différentes valeurs (une centaine).
    Je me sers de ces deux combobox pour comparer les différentes valeurs qu’elles peuvent prendre.
    En gros je sélectionne une valeur en A1 et une valeur en A2 et j’obtiens une valeur en B1.
    Je cherche à mettre en place un bout de code VBA pour me permettre d’exécuter une macro à chaque combinaison de ces deux combobox.
    En vadrouillant sur internet je suis tombé sur ce bout de code qui permet donc pour toutes les valeurs en A1 d’exécuter « mamacro ». Cependant à ce stade je suis quand même obligé de sélectionner manuellement les différentes valeurs dans A2 à chaque fois en sachant que j’ai une centaine de valeurs différentes, et donc à peu près 4950 combinaisons possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub combi ()
        For Each cell In Range("Plage A1")
       Sheets("feuille1").Range("A1") = cell.Value
      Call mamacro
     Next cell
    End Sub
    J'espère avoir exposé mon problème de manière claire..

    Si je peux bénéficier de l'éclairage de quelqu'un ça ne serait pas de refus

    Merci d'avance pour votre aide!

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    De ce que je crois avoir compris, une double boucle (pas optimal comme principe) devrait te faire l'effet escompté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub combi ()
    Dim R1 As Range, R2 As Range
    For Each R1 In Range("Plage A1")
       Sheets("feuille1").Range("A1") = R1.Value
       For Each R2 In Range("Plage A2")
          Sheets("feuille1").Range("A2") = R2.Value
          Call mamacro
       Next R2
    Next R1
    End Sub
    Mais je penses que tu aurais tout intérêt à passer par des variables tableaux et à paramétrer ta macro mamacro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub combi ()
    Dim TbA1, TbA2, i As Integer, j As Integer, resCalcul  'As ??? à typer en fonction du résultat attendu
     
    TbA1 = Range("Plage A1").Value
    TbA2 = Range("Plage A2").Value
    For i = LBound(TbA1) To UBound(TbA1)
       For j = LBound(TbA2) To UBound(TbA2)
          resCalcul = CalculeB1(TbA1(i), TbA2(j))
          Call mamacro resCalcul
       Next j
    Next i
    End Sub
     
    Private Function CalculeB1(ValA1, ValA2) 'As ??? fonction à typer en fonction du résultat attendu
    'ici tu places le code équivalant à la formule calculée en B1
       'retour de la fonction :
       'CalculeB1 = 
    End Function
     
    Private Sub mamacro(result)
      'ici le code de ta macro avec result qui remplace la valeur de ta cellule B1
    End Sub
    Cordialement,
    Franck

Discussions similaires

  1. Tous les jours entre deux dates
    Par karamurat dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/01/2011, 15h53
  2. suppression de tous les enregistrements ayant deux champs vides
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/04/2009, 17h30
  3. Réponses: 2
    Dernier message: 25/02/2008, 23h40
  4. Réponses: 14
    Dernier message: 25/11/2007, 18h32
  5. Comparaison de tous les membres de deux pds
    Par hotstunt dans le forum z/OS
    Réponses: 3
    Dernier message: 19/11/2007, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo