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 :

Créer un combobox qui se répéte


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut Créer un combobox qui se répéte
    Salut ,

    Svp je suis débutant en vba excel , et je veux créer une combobox qui contient ( Mercedes , renault , citroen ) et qui se répéte dans des cellules qui se suivent , et je veux faire cela par une boucle car le nombre de cellules n'est pas fixe.

    autre question : comment on supprime une combobox ?

    Merci d'avance .

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si ur des cellules, passe par la Validation des données, c'est plus simple à mettre en place

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    oui , mais le probleme c'est que le nombre de cellules peut changer , car je veux une interface ou on fait entrer le nombre de cellule et affiche les combobox selon le nombre entré .

    Merci de me répondre.

    cordialemnt .

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Dis toi qu'on a pas la disposition de ton fichier et que ton explication est vague.

    Une validation de données sur un ensemble de cellules est largement possible et facile à mettre en œuvre.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Désolé , ci-joint le fichier Macro
    Le probleme c que je veux que le nombre de combobox ( R312 , iveco , volvo , mercedes ) change à partir de la cellule G11 , avec le nombre de circuits qu'on fait entrer à partir de la cellule G11 calcul prix de vente VBA.xlsm
    calcul prix de vente VBA.xlsm

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    On demande une explication, tu fourni un fichier. C'est pas ça

    Ci-joint exemple comment inscrire une liste de validation en fonction d'un nombre entré par l'utilisateur (variable Nblig). C'est à dire, la plage comportant NblLig Cellules à partir de A2 de la feuille nommée Feuil3.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
    Dim NbLig As Long
     
    NbLig = Val(InputBox("Entrez le nombre de cellules", , 1))
    If NbLig > 0 Then
        With Worksheets("Feuil3").Range("A2").Resize(NbLig).Validation
            .Delete
            .Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="TATA,TETE,TITI,TOTO,TUTU"
        End With
    End If
    End Sub

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Merci , Désolé une question un peu bete vu que je suis débutant : est ce que ce code se met à l'interieur du programme que j'ai ou bien à l'exterieur avec le truc Sub test ..... End sub . et Merci . voila mon code :


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub location()
     
    Dim Nbrcr As Integer
     
    Nbrcr = Range("E4").Value
    For i = 10 To Nbrcr + 9
     
    Range("D" & i).Value = "circuit" & i - 9
     
     If Range("G" & i).Value = "R312" Then
     
      Sheets("V").Range("E20").Value = Sheets("Circuits").Range("E" & i - 5).Value
      Range("I" & i).Value = Sheets("CR").Range("D34").Value * ((Range("H4") / 100) + 1)
     
     ElseIf Range("G" & i).Value = "IVECO" Then
     
     Sheets("V (IVECO)").Range("E17").Value = Sheets("Circuits").Range("I" & i - 5).Value
      Range("I" & i).Value = Sheets("CR (IVECO)").Range("D34").Value * ((Range("H4") / 100) + 1)
     
     ElseIf Range("G" & i).Value = "Volvo" Then
     
    Sheets("V (Volvo)").Range("E15").Value = Sheets("Circuits").Range("M" & i - 5).Value
      Range("I" & i).Value = Sheets("CR (Volvo)").Range("D34").Value * ((Range("H4") / 100) + 1)
     
    ElseIf Range("G" & i).Value = "Mercedes" Then
     
    Sheets("V (Mercedes)").Range("E17").Value = Sheets("Circuits").Range("Q" & i - 5).Value
      Range("I" & i).Value = Sheets("CR (Mercedes)").Range("D34").Value * ((Range("H4") / 100) + 1)
     
     
     End If
     
     
     
     
    Next i
     
    End Sub

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sur quelle plage de quelle feuille tu veux insérer tes listes de validation?

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    je veux l'insérer dans la feuille "interface" , à partir de la cellule G10 de la colonne G , de telle façon à ce qu'on m'affiche ces combobox selon le nombre de circuits entré ( soit égale au nombre de combobox ) . si vous pouvez me reglez le probleme et me l'envoyer et je vous remercie beaucoup .

    S'il vous plait , j'ai un autre probleme , on m'affiche "Excusion 13 : incompatibilité de type , lorsque j'éxcute le code que je vous ai envoyé

    et Merci énormement pour votre aide .

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Non, je ne vais rien faire à ta place, je vais juste te guider

    Et comment tu récupère le nombre de circuits entré?

  11. #11
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Juste on le saisit dans une cellule E4 dans la feuille interface

    Dans le code VBA si tu la vue , j'ai mis une variable Nbrcr qui disigne nombre de circuit : Nbrcr = Range("E4").Value

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je ferai comme ceci donc

    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
    Sub Location()
    Dim NbrCr As Integer
     
    With Worksheets("interface")
        NbrCr = Val(.Range("E4").Value)
        If NbrCr > 0 Then
            With .Range("G10").Resize(NbrCr).Validation
                .Delete
                .Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="TATA,TETE,TITI,TOTO,TUTU"
            End With
            '...la suite du code
            '....
        End If
    End With
    End Sub

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Merci bcp . je vais essayer ça

    Svp est ce vous serez disponible cette journée , je pense que je vais avoir besoin de votre aide si c possible

    Cordialement.

  14. #14
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Citation Envoyé par sossso112333 Voir le message
    Merci bcp . je vais essayer ça

    Svp est ce vous serez disponible cette journée , je pense que je vais avoir besoin de votre aide si c possible

    Cordialement.

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    svp ce que je veux à travers le code ci-dessous c lorsque je choisis par exeple "R312" dans le combobox il va prendre la valeur de E5 dans la feuille "circuits" et il va la mettre dans E17 de la feuille "V" pour qu'il utilise cette valeur dans la feuille CR et apres il affiche dans la feuille "interface" le prix de vente avec la formule :

    Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)

    et les valeurs utlilisés changent selon le choix dans le combobox

    Voici le code est ce que les fonctions utilisés ( comme sheets pour prendre une valeur d'une autre feuille ) sont correctes :

    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
    If Range("G" & i).Value = "R312" Then
      Sheets("V").Range("E20").Value = Sheets("Circuits").Range("E" & i - 5).Value
      coutrevient = Sheets("CR").Range("D34").Value
      Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)
     
     ElseIf Range("G" & i).Value = "IVECO" Then
     
     Sheets("V (IVECO)").Range("E17").Value = Sheets("Circuits").Range("I" & i - 5).Value
      coutrevient = Sheets("CR (IVECO)").Range("D34").Value
      Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)
     
     ElseIf Range("G" & i).Value = "Volvo" Then
     
    Sheets("V (Volvo)").Range("E15").Value = Sheets("Circuits").Range("M" & i - 5).Value
      coutrevient = Sheets("CR (Volvo)").Range("D34").Value
      Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)
     
    ElseIf Range("G" & i).Value = "Mercedes" Then
     
    Sheets("V (Mercedes)").Range("E17").Value = Sheets("Circuits").Range("Q" & i - 5).Value
      coutrevient = Sheets("CR (Mercedes").Range("D34").Value
      Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)

  16. #16
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Arrêtes de jouer le malin et relis les règles du forum.

  17. #17
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Excusez moi monsieur , mais j'essaye pas de jouer le malin , tout ce qu'il y a c que je suis encore débutant , et je maitrise pas bien les astuces de code , et je cherche quelqu'un d'expert pour m'aider , et que je suis nouveau dans le Forum. est ce qu'il ya un probleme dans ma derniere question ou koi ?

  18. #18
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    Svp si ça vous derange pas

    pour l'erreur 13 : incompatibilité type

    avec le f8 on me disigne ses deux lignes ci-dessous et je sais pas ou est le probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    coutrevient = Sheets("CR").Range("D34").Value
    Range("I" & i).Value = coutrevient * ((Range("H4") / 100) + 1)

    est ce que l'expression "sheets" disigne bien la donnée de la feuille CR ?

  19. #19
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Qu'est ce que tu as comme donnée sur ta feuille CR dans la cellule D34?

  20. #20
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 44
    Par défaut
    j'ai la-bas la valeur d'un cout de revient que je calcule tout d'abord en affectant une valeur de la feuille "circuits" à une cellule E17 dans la feuille "V" comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("V").Range("E20").Value = Sheets("Circuits").Range("E" & i - 5).Value
      coutrevient = Sheets("CR").Range("D34").Value
      Range("I" & i).Value = coutrevient * ((Range("H4").Value / 100) + 1)

Discussions similaires

  1. Créer pour un bouton une image entière ou qui se répète via CSS
    Par sam01 dans le forum Webdesign & Ergonomie
    Réponses: 4
    Dernier message: 03/05/2010, 19h18
  2. Réponses: 11
    Dernier message: 30/08/2005, 10h50
  3. créer un [ComboBox ??? ] à sélection multiple ?
    Par chasseur37 dans le forum Bases de données
    Réponses: 7
    Dernier message: 20/07/2005, 07h52
  4. Créer 5 menus qui interagissent entre eux
    Par rocs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/07/2005, 11h06
  5. Réponses: 2
    Dernier message: 26/09/2003, 16h49

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