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 :

Remplissage et sélection dans 3 combobox [XL-2016]


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
    autodidacte
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut Remplissage et sélection dans 3 combobox
    Bonsoir...

    Désolé d'e^tre aussi nul...j'ai testé plusieurs méthode et je n'y arrive pas...j'ai tenté les forum..je n'y arrive pas...

    J'ai réussi quelques manip mais là je butte sur quelque chose sans doute de facile. Voici ce que je souhaite :

    A l'ouverture de la userform une boite de dialogue s'ouvre (cf fichier joint)

    Je dispose d'une base de données 'feuille BD'

    Je souhaite qu'à l'ouverture automatique de la userform, la combobox se charge en 3 colonnes avec la liste entière des colonnes a,b et C.

    Une fois mon choix effectué dans la liste, je veux que les textbox se remplissent automatiquement, ainsi que la caseàcocher selon la valeur de la colonne associée.

    Aidez-moi pls

    Yo
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour à toutes & à tous,
    j'ai même anticipé et adapté ton bouton de modification

    essayez avec
    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
    Private Sub ComboBox1_Change()
    Dim plage As Range
    Dim Dernligne As Long
    Dernligne = Sheets("BD").Range("A" & Rows.Count).End(xlUp).Row + 1
     
    CodeRech = ComboBox1.Value
     
    Set plage = Sheets("BD").Range("A2:A" & Dernligne)
    With Sheets("BD")
    For Each cell In plage
     If cell.Value Like CodeRech Then
     TextBox1.Value = .Cells((cell.Row), 1).Value
     TextBox2.Value = .Cells((cell.Row), 2).Value
     TextBox3.Value = .Cells((cell.Row), 3).Value
     If .Cells((cell.Row), 4).Value Like "TRUE*" Then
     CheckBox1.Value = True
     Else: CheckBox1.Value = False
     End If
    End If
    Next cell
     
    End With
    End Sub
     
    Private Sub CommandButton1_Click()
    Dim plage As Range
    Dim Dernligne As Long
    Dernligne = Sheets("BD").Range("A" & Rows.Count).End(xlUp).Row + 1
     
    CodeRech = ComboBox1.Value
     
    Set plage = Sheets("BD").Range("A2:A" & Dernligne)
    With Sheets("BD")
    For Each cell In plage
     If cell.Value Like CodeRech Then
     .Cells((cell.Row), 1).Value = TextBox1.Value
    .Cells((cell.Row), 2).Value = TextBox2.Value
    .Cells((cell.Row), 3).Value = TextBox3.Value
     If CheckBox1.Value = True Then
     .Cells((cell.Row), 4).Value = "TRUE "
     Else
     .Cells((cell.Row), 4).Value = "FALSE "
     End If
    End If
    Next cell
     
    End With
    ComboBox1.Value = ""
    TextBox1.Value = ""
    TextBox1.Value = ""
    TextBox1.Value = ""
    MsgBox ("Modification effectuée")
    Unload UserForm1
    End Sub
     
    Private Sub UserForm_Click()
    'UserForm1.Show
    End Sub
     
    Private Sub UserForm_Initialize()
     
    Set f = Sheets("BD")
      Set Rng = f.Range("A2:C" & f.[A65000].End(xlUp).Row + 1)
      Me.ComboBox1.List = Application.Index(Rng, Evaluate("Row(1:" & Rng.Rows.Count & ")"), Array(1, 2, 3))
      Me.ComboBox1.RemoveItem Me.ComboBox1.ListCount - 1
    End Sub
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut ALors là !! Un grand merci !!!
    Un grand merci à toi...je ne sais pas combien de tmeps il t' a fallu..mais là..génial...

    je vais pouvoir décortiquer ton code pour essayer de comprendre et l'appliquer à mon tableau de 350 lignes et 30 colonnes !!!

    Je reviens dès que j'ai testé sur mon fichier...j'ai hâte..

    Merci encore

    Yo

  4. #4
    Membre averti
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut Problème la suite
    Je peux joindre une copie modifiée et light de mon projet
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    1/ Pour avoir les trois colonnes dans ton combobox : clic sur cette combo et voir coté propriété ColumnCount et mettre 3 au lieu de 1
    aussi en bas du coumncount il y a le COLUMNWIDTH ou vous pouvez définir la largeur à attribuer a chaque colonne : exemple (150 pt;30 pt;80 pt)
    2/ Tu peux chercher et modifier avec le numéro de licence qui est unique non??
    Attention à la définition de la plage, je voix inutile de chercher dans toutes les colonnes de a à az !!! (dans notre cas en va chercher le num licence dans la colonne D donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CodeRech = TextBox7.Value
    Set plage = Sheets("base_arbitre_complète").Range("D2:D" & Dernligne)
    faire ça et revenir pour dire ce que ça donne
    BONNE JOURNEE

  6. #6
    Membre averti
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut Test ok
    Bonsoir !! Ca marche nickel !!

    En fait, je l'ai fait par le n° d'enregistrement unique. Ma combobox en 4 colonnes dont la première (n°id) à 0.
    Les modifs se font super bien. Et ca gère les doublons. SUPER GENIAL !! Je galérai depuis des semaines...

    Vous allez dire que j'abuse, quel serait le code pour un bouton de commande utilisé pour :
    - Déplacer les données des colonnes Y à AC (25à29), c'est à dire les données de Y vers Z, Z vers AA, AA vers AB, AB vers AC avec perte des anciennes données de AC
    - Déplacer les données des colonnes N, Q, AO (14,17,41) vers la colonne Y en les concaténant et séparée d'un ;
    - Déplacer les données des colonnes U,AI,AL (21,35,38) vers la colonne Y en les concaténant "donnéeU (cc); donnéeAI (1ex);donnéeAL (2ex), et seulement si l'une des 3 colonnes est renseignée (pour éviter d'écraser le transfert des colonnes N, Q, et AO).

    Si cela est trop difficile ce n'est pas grave j'essaierai de trouver seul...

    Merci

    Yo

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

Discussions similaires

  1. Je suis dans une impasse
    Par ldv75 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/09/2011, 17h54
  2. integrer le help dans une applivation java
    Par baya1 dans le forum JBuilder
    Réponses: 3
    Dernier message: 08/04/2007, 18h33
  3. Réponses: 1
    Dernier message: 17/02/2007, 16h17
  4. Réponses: 9
    Dernier message: 29/03/2006, 16h40

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