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 :

Ajout ComoboBox en cascade dans userform et macro existante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    technicien BE plasturgie
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien BE plasturgie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut Ajout ComoboBox en cascade dans userform et macro existante
    Bonjour a tous,
    de retour après plusieurs (et pour cause de changement de travail) pour adapter mon tableau excel a cette nouvelle activité.
    Le but de ce tableau est de rentrer les temps passés sur différents projets (pour affiner ensuite la partie chiffrage).
    La plus grande partie de la macro fonctionne tres bien ( elle remplis le premier onglet "donnees" avec certaines infos, et remplis aussi les onglets nominatifs suivants)
    je souhaite ajouter a mon userform une liste en cascade de 2 niveaux (client et bateau).
    La première liste se déroule bien,mais plante quand je sélectionne un chiffre, et je coince aussi sur la 2eme, j'ai épluche moultes pages du forum, de diverses pages web et le site de Jacques Ggontier, en vain, je n'arrive pas afficher cette deuxième liste dépendante de la première.

    Ci dessous, le code, pas le fichier excel (il fait quasi 10 Mo ,alors qu'il n'y a pas grand chose dedans ).

    D'avance merci pour vos judicieux conseils

    Laurent

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
     
    Private Sub ComboBox1_Change() 'Combobox bateau
    If ComboBox1.Value = "" Then Exit Sub
    ComboBox2.Clear
    Dim NomRange As String
    If NomDefini(NomRange) Then
        ComboBox2.List = Application.Transpose(Range(NomRange))
    End If
    End Sub
     
     
    Private Sub ComboBox4_Change() 'combobox sous produit
    Dim plage As Range
    Set plage = Sheets("LISTE").Range("G2:F20")
    End Sub
     
    Private Sub ComboBox5_Change() 'Combobox activité
    Dim plage As Range
    Set plage = Sheets("LISTE").Range("A2:A50")
     
    End Sub
     
    Private Sub ComboBox2_Change() 'Combobox bateau
     
    End Sub
     
    Private Sub ComboBox3_Change() 'Combobox produit
    Dim plage As Range
    Set plage = Sheets("LISTE").Range("F2:F99")
     
    End Sub
     
     
    Private Sub ComboBox6_Change() 'Combobox intervenant
    Dim plage As Range
    Set plage = Sheets("LISTE").Range("E2:E15")
    End Sub
     
    Private Sub ComboBox7_Change() 'Combobox bateaux
    If ComboBox7.Value = "" Then Exit Sub
    Dim NomRange As String
    NomRange = CaracSpec(ComboBox7.Value)
     
    End Sub
     
    Private Sub CommandButton1_Click()
    Unload UserForm1
    End Sub
     
    Private Sub CommandButton2_Click()
    'Recuperation de la derniere ligne et inscription des données
    Dim intLine As Integer
     intLine = Range("a65000").End(xlUp).Row + 1
     
      Cells(intLine, 1).Value = DTPicker1.Value
      Cells(intLine, 2).Value = ComboBox2.Value
      Cells(intLine, 3).Value = ComboBox3.Value
      Cells(intLine, 4).Value = ComboBox4.Value
      Cells(intLine, 5).Value = ComboBox6.Value
      Cells(intLine, 6).Value = TextBox1.Value
      intLine = Sheets("DONNEES " & ComboBox6.Value).Range("a65000").End(xlUp).Row + 1
       With Sheets("DONNEES " & ComboBox6.Value)
      .Cells(intLine, 1).Value = DTPicker1.Value
      .Cells(intLine, 2).Value = ComboBox2.Value
      .Cells(intLine, 3).Value = ComboBox3.Value
      .Cells(intLine, 4).Value = ComboBox4.Value
      .Cells(intLine, 5).Value = ComboBox6.Value
      .Cells(intLine, 6).Value = TextBox1.Value
      End With
     
     
    End Sub
    'affichage calendrier
    Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
     
    End Sub
     
    Private Sub ListBox1_Click()
     
    End Sub
     
    Private Sub Label7_Click()
     
    End Sub
     
    Private Sub UserForm_Initialize()
        'spécifie la date du jour lors de l'affichage de l'USF
        DTPicker1.Value = Now
        ComboBox1.Clear
        ComboBox1.List = Application.Transpose(Range("client"))
        ComboBox2.Clear
     
    End Sub
     
    Private Sub DTPicker1_Change()
            MsgBox DTPicker1.Value
    End Sub
     
    Private Sub Label1_Click()
     
    End Sub
     
    Private Sub Label5_Click()
     
    End Sub
     
    Private Sub TextBox1_Change()
     
    End Sub
     
    Private Sub TextBox2_Change()
     
    End Sub
     
    Private Sub UserForm_Click()
     
    End Sub

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 93
    Par défaut
    Bonjour
    Je n'ai pas la syntaxe exacte mais tu peux te servir de FOR...EACH qui va tout seul boucler sur tout tes combobox
    Je t'encourage à lire les 2 liens suivants
    https://www.developpez.net/forums/d1...each-combobox/
    https://tissotemmanuel.developpez.co...classe/#LIII-B

    Cdlt

    Nekko

  3. #3
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,

    La première liste se déroule bien,mais plante quand je sélectionne un chiffre
    A partir du moment ou une variable est déclarée comme string (chaine de caractères) il semble normal qu'un chiffre crée une erreur!!! non?
    Cordialement

  4. #4
    Membre averti
    Homme Profil pro
    technicien BE plasturgie
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien BE plasturgie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Transitoire Voir le message
    Bonjour,



    A partir du moment ou une variable est déclarée comme string (chaine de caractères) il semble normal qu'un chiffre crée une erreur!!! non?
    Cordialement
    Je viens de tester en ajoutant "client 1" a la place de "1" (valeur mise pour le test de la macro) , erreur quand meme :/

    Nom : erreur userform-1.JPG
Affichages : 332
Taille : 97,8 Ko

  5. #5
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Re,
    Question qu'est ce que "NomDefini" ?
    Cordialement

  6. #6
    Membre averti
    Homme Profil pro
    technicien BE plasturgie
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien BE plasturgie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Bonjour,
    pour le "NomDefini" c'est la question que je me pose justement, je ne vois pas ou ni comment définir cette info
    *edit*
    en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If NomDefini = "client" Then
    la première liste se déroule sans erreur, la deuxième reste vide (une case vide se déroule) mais la macro ne plante pas

    Merci de m'avoir mis sur la piste

  7. #7
    Membre averti
    Homme Profil pro
    technicien BE plasturgie
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien BE plasturgie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Nekko Voir le message
    Bonjour
    Je n'ai pas la syntaxe exacte mais tu peux te servir de FOR...EACH qui va tout seul boucler sur tout tes combobox
    Je t'encourage à lire les 2 liens suivants
    https://www.developpez.net/forums/d1...each-combobox/
    https://tissotemmanuel.developpez.co...classe/#LIII-B

    Cdlt

    Nekko
    Merci pour les liens, je vais regarder ça de pres

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Ajouter un bouton dans un userform par macro
    Par mimidodo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2015, 13h31
  2. vba ajout de bouton dynamique dans userform + action sur bouton ajouté
    Par choupette_64 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/07/2009, 15h04
  3. Modif macro impression - ajout d'un répertoire dans chemin
    Par niobium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2009, 07h03
  4. [VB Sax] Ajouter une référence manuellement dans un macro *.bas
    Par Miles Raymond dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2008, 09h31
  5. Macro pour ajouter un nouvel élément dans un tableau
    Par dudu134 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/02/2007, 16h31

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