Remplir une combobox sur une feuille excel

thunder23

XLDnaute Occasionnel
Bonsoir le forum,

Je viens vers vous car je souhaiterais remplir une ComboBox qui est sur une feuille excel avec le contenu d'une colonne sur une autre feuille excel. Je n'ai jamais eu à faire comme ça car auparavant s'était dans un UserForm.

Merci d'avance pour votre aide :)
 

Jacky67

XLDnaute Barbatruc
Re..
Modifier ce classeur est pour moi==>mission impossible, il faudrait des semaines.
Désolé.
Si tu es à l'origine de ce projet, cela ne devrait pas poser de problème pour adapter les boutons à un combobox.
On est quand même très.. très.. loin de la demande d'origine
*/Remplir une combobox sur une feuille excel/*
Sinon, ouvre un nouveau poste, peut-être quelqu'un……..
 

thunder23

XLDnaute Occasionnel
Re...

Ce n'est pas grave c'est déjà énorme l'avancé qui a été faite, merci encore.
Oui l'origine du projet est de moi après certains code m'ont été proposé car à l'époque le code VBA j'étais novice mais je sais comment ils fonctionnent.
Effectivement on est trèèèèès loin de la demande d'origine, je me suis un peu emporté pour le coup mais ça me fait plaisir de partager dans ce domaine mais je pense que je vais d'abord voir si je peux adapter les codes avec celui que tu m'as proposé sinon je ferais un autre poste ;)

Merci encore
Cordialement
Michel
 

Jacky67

XLDnaute Barbatruc
Re..
C'est ce qu'elle fait
Essaie ce code pour mieux voir

VB:
Private Sub ComboBox_poste_Change()
    Dim C As Range
    If ComboBox_poste.ListIndex = -1 Then Exit Sub
    For Each C In Selection    'Boucle sur les cellules selectionnées
        If Not Intersect(C, [plage]) Is Nothing Then    ' vérifie si C est bien dans plage("plage" est un nom défini)
            Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2).Copy C
            MsgBox "Valeur de la cellule recherchée: " & Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2) & vbLf & "Adresse de la cellule recherchée : Feuil2 " & Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2).Address & vbLf & "Adresse de la cellule de destination: " & C.Address
        End If
    Next
    If [c36] = "" Then [d36] = "": [d36].Interior.ColorIndex = xlNone
    ComboBox_poste = ""
End Sub
 

thunder23

XLDnaute Occasionnel
Re..
C'est ce qu'elle fait
Essaie ce code pour mieux voir

VB:
Private Sub ComboBox_poste_Change()
    Dim C As Range
    If ComboBox_poste.ListIndex = -1 Then Exit Sub
    For Each C In Selection    'Boucle sur les cellules selectionnées
        If Not Intersect(C, [plage]) Is Nothing Then    ' vérifie si C est bien dans plage("plage" est un nom défini)
            Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2).Copy C
            MsgBox "Valeur de la cellule recherchée: " & Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2) & vbLf & "Adresse de la cellule recherchée : Feuil2 " & Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2).Address & vbLf & "Adresse de la cellule de destination: " & C.Address
        End If
    Next
    If [c36] = "" Then [d36] = "": [d36].Interior.ColorIndex = xlNone
    ComboBox_poste = ""
End Sub

Re,

oui je comprends bien, merci d'avoir décripter pas á pas la variable mais comment faire pour prendre que la valeur (ex: M) sans la mise en forme?
j'avoue que je n'ai pas précisé et je m'en excuse. :)

Cdlt
Michel
 

Jacky67

XLDnaute Barbatruc
Re...
VB:
'----------------
C = Feuil2.Cells(ComboBox_poste.ListIndex + 3, 2)      '.Copy C'
'---------------
En sachant qu'alors C est égale à la valeur du combobox
Donc
VB:
'-------------
C = ComboBox_poste.Value
'-------------
Cela part un peu dans tous les sens…....:rolleyes:
 
Dernière édition:

thunder23

XLDnaute Occasionnel
Re,

Ben en fait c'est que je ne comprends pas pourquoi ça me prends la cellule au complet alors que ça ne devrait prendre que la valeur ?
J'ai mis en pj mon fichier afin de mieux comprendre le problème car là ça me dépasse o_O

Cordialement
Michel
 

Pièces jointes

  • testcomboboxvalue.xlsm
    363.8 KB · Affichages: 8

thunder23

XLDnaute Occasionnel
Re,

Ahh d'accord c'est l'une OU l'autre :oops::oops:
Je viens de supprimer
VB:
Feuil10.cells(ComboBox_poste.ListIndex + 3, 2).Copy C
et c'est bon ça ne prend que la valeur néanmoins je vais garder ce code si j'en ai besoin plus tard ;)

encore merci pour ton aide et ta patience :):):)

Cordialement
Michel
 

Jacky67

XLDnaute Barbatruc
Re..
Si tu parles du code précédent qui n'est pas une MFC ce serait
VB:
Feuil10.cells(ComboBox_poste.ListIndex + 3, 2).Copy
C.PasteSpecial Paste:=xlPasteAllExceptBorders

*L'enregistreur de macro pour ce genre de code est aussi une grande aide
 

thunder23

XLDnaute Occasionnel
Re..
Si tu parles du code précédent qui n'est pas une MFC ce serait
VB:
Feuil10.cells(ComboBox_poste.ListIndex + 3, 2).Copy
C.PasteSpecial Paste:=xlPasteAllExceptBorders

*L'enregistreur de macro pour ce genre de code est aussi une grande aide

Ahh super en tout cas j'étais très très loin car j'ai voulu essayer après avoir essuyer un échec avec la MFC "classique" :eek:
Merci beaucoup :):)

Cordialement
Michel
 

Discussions similaires

Réponses
4
Affichages
243

Statistiques des forums

Discussions
311 737
Messages
2 082 036
Membres
101 878
dernier inscrit
1475214