Excel lier combobox d'un formulaire à une colonne

fresnais

XLDnaute Nouveau
bonjour et bonne année 2019 à tous
j'ai besoin d'un petit coup de main svp
j'ai un combobox dans un formulaire que je souhaite lier à une colonne D de ma feuille
bien cordialement à tous
 

Pièces jointes

  • BIR_Suivi_DEV_2019.xlsm
    1.7 MB · Affichages: 51

fresnais

XLDnaute Nouveau
bonjour et bonne année 2019 à tous
j'ai besoin d'un petit coup de main svp
j'ai un combobox dans un formulaire que je souhaite lier à une colonne D de ma feuille
bien cordialement à tous
Bonsoir

ah bon ? , quel formulaire , et le combobox il est ou ? à part une liste déroulante .. !
je veux bien aider , mais là je vois pas le résultat attendu en faisant quoi ?
bonsoir herve62
merci de me répondre
je me suis surement mal exprimé
je vais essayer d'être plus précis
comme tu as pu le voir j'ai une feuille excel avec une trentaine de colonnes
je souhaite faire un formulaire de saisie avec quelques champs
dans le formulaire j'aimerai mettre un combobox qui soit relié à la colonne D Ville_codepostale de la feuille
je ressaye le téléchargement car le formulaire n'était pas visible
bien cordialement
jean Fresnais
ps j'espère que tu verra le formulaire cette fois-ci
 

Pièces jointes

  • BIR_Suivi_2019 - Copie.xlsm
    2.9 MB · Affichages: 37

fresnais

XLDnaute Nouveau
excuse moi hervé62
j'ai essayer de mettre 5 dans les propriété du combobox
Certe je peux écrire dedans mais il ne me renvoie pas la liste déroulante avec saisie intuitive que j'avais faite sur les villes et codepostaux de france
as tu une solution svp ?
 

laurent950

XLDnaute Accro
Bonsoir
dans votre feuille "Villes" Colonne A / de la première à la dernière ligne.
ici le code à stocké dans la combobox avec .List
comme ci-dessous
à initialisé lors de la création à l'ouverture de la combobox.

Lien intéressant ci-dessous.
Pour info : https://silkyroad.developpez.com/VBA/ControlesUserForm/

VB:
Private Sub UserForm_Initialize()
Dim F1 As Worksheet
Set F1 = Worksheets("Villes")
ComboBox1.List = F1.Range(F1.Cells(1, 1), F1.Cells(F1.Cells(65536, 1).End(xlUp).Row, 1)).Value
End Sub
 
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Sans être sûr de ton souhait , pour moi une combobox dans une feuille c'est ça !
2 méthodes
-Controle formulaire > elle est alimentée directement de la colonne D de l'onglet "villes" ..je suppose ? là encore rien n'a été précisé !! , pas sûr mais Pb de longueur toléré ..ça ne va pas au bout ? à vérifier
-Controle ActiveX généralement ceux des USF > alimenté via VBA
A toi de voir , si j'ai vu ou me suis planté !
excuse moi hervé62
j'ai essayer de mettre 5 dans les propriété du combobox
?? ce n'est pas de moi , mais de CP4

nota : pour les test ici ,tu pourrais alléger ton fichier !! de 3Mo
 

Pièces jointes

  • BIR_Suivi_2019test.xlsm
    3 MB · Affichages: 32

laurent950

XLDnaute Accro
Bonsoir,

Un début, l'idée est là.
A finalisé selon le modèle pour alimenter :
- TextBox
- ComboBox
J'ai commencer le début il faut continuer selon le modèle

Agrémenter :
- ajouté des conditions (Vérification et pas effacer des éléments déjà écrit ci c'est le cas)

Si il y a des autres possibilité au plaisir d'apprendre et partager

Laurent
 

Pièces jointes

  • BIR_Suivi_2019 - Formulaire.xlsm
    2.9 MB · Affichages: 22
Dernière édition:

laurent950

XLDnaute Accro
'Bonjour,
'J'ai pensé que c'était mieux de corrigé le module de classe et refait une autre variante
'Tous commence par ce module qui va servire a repérer l'adresse de la cellule active
'et renseigner le range dans le module de classe "Feuil3 (Excel)"
' Quelques explication sur cette autres variante par rapport a la première
' Aux Choix
VB:
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row > 4 Then
        ' Stock la position de la ligne de correction
            Set Choix = New PositionCorrection
                Set Choix.Coriger = Target
        Formulaire
    End If
End Sub
' Puis les condition dans le moudule standard "Module1"
VB:
' Variable public a tous le projet
Public Choix As PositionCorrection
Public Sub Formulaire()
    If Formulaire_Geometre.Visible = True Then
        Unload Formulaire_Geometre
        Formulaire_Geometre.Show
    Else
        Formulaire_Geometre.Show
    End If
End Sub
'Ensuite créer le module de classe du nom "PositionCorrection"
' ici la cellule active est stocké dans le module de classe
' c'est a dire le range de cette cellule active avec toutes
' ses propriété
VB:
Private mNumLign As Range
Public Property Set Coriger(Target As Range)
    Set mNumLign = Target
End Property
Public Property Get Coriger() As Range
    Set Coriger = mNumLign
End Property
' Ensuite créer l'usurform du nom "Formulaire_Geometre"
' ici je vais récupérer l'information de ma cellule active
' quie est stoké dans mon moudule de classe "soit le Range"
' soit :
' Choix.Coriger c'est le range de la cellule active donc
' MsgBox Choix.Coriger.Row (.Row) pour numéro de ligne
' MsgBox Choix.Coriger.address (.address) pour l'adresse de la cellule
' ect.
' donc F2.Cells(Choix.Coriger.Row, 1)
' F2 = Nom de la feuille
' Cells(Choix.Coriger.Row, 1) = Cellule(Ligne, Colonne)
' Choix.Coriger.Row = Numéro de la ligne active précedement recueillit a l'aide de la fonction
' Public Sub Worksheet_SelectionChange(ByVal Target As Range)
' puis 1 la colonne 1
VB:
Private F1 As Worksheet
Private F2 As Worksheet
Private Sub CommandButton1_Click()
    Unload Me
End Sub
Public Sub UserForm_Initialize()
    Set F1 = Worksheets("Villes")
        ComboBox1.List = F1.Range(F1.Cells(1, 1), F1.Cells(F1.Cells(65536, 1).End(xlUp).Row, 1)).Value
    Set F2 = Worksheets("BIR_2019")
          'MsgBox Choix.Coriger.Row
    ' Remplir le formulaire
        ' TextBox1 = Nom Client
             TextBox1.Value = F2.Cells(Choix.Coriger.Row, 1)
        ' TextBox3 = Référence client
            TextBox3.Value = F2.Cells(Choix.Coriger.Row, 2)
        ' TextBox2 = N°OT
             TextBox2.Value = F2.Cells(Choix.Coriger.Row, 7)
       ' ComboBox1 = Ville_CodePostal
            ComboBox1.Value = F2.Cells(Choix.Coriger.Row, 4)
End Sub
VB:
Private Sub CommandButton2_Click()
    ' Modifier le formulaire
        ' TextBox1 = Nom Client
            F2.Cells(Choix.Coriger.Row, 1) = TextBox1.Value
        ' TextBox3 = Référence client
            F2.Cells(Choix.Coriger.Row, 2) = TextBox3.Value
        ' TextBox2 = N°OT
            F2.Cells(Choix.Coriger.Row, 7) = TextBox2.Value
        ' ComboBox1 = Ville_CodePostal
            F2.Cells(Choix.Coriger.Row, 4) = ComboBox1.Value
End Sub
 

Pièces jointes

  • BIR_Suivi_2019 - Formulaire Correction Module de classe.xlsm
    2.9 MB · Affichages: 22
Dernière édition:

cp4

XLDnaute Barbatruc
excuse moi hervé62
j'ai essayer de mettre 5 dans les propriété du combobox
Certe je peux écrire dedans mais il ne me renvoie pas la liste déroulante avec saisie intuitive que j'avais faite sur les villes et codepostaux de france
as tu une solution svp ?
Bonjour,
N'étant pas tout le temps disponible, ce n'est que maintenant que je te réponds.
J'ai répondu à ta question: comment lier une combobox à une colonne?
Tu aurai dû expliquer les tenants et les aboutissants pour que l'on comprenne mieux tes attentes.
Ce fichier de JB, un exemple de l'utilisation de la Propriété Tag: http://boisgontierjacques.free.fr/fichiers/Formulaire/Achat.xls

Edit: ci-joint fichier pour ajout dans la bd avec tags. ces derniers ont été configurés par code, tu peux aussi le faire pour chaque contrôles voir image (où tu insérer le n° de colonne)
Propriété Tag de textbox1.JPG
 

Pièces jointes

  • BIR_Suivi_DEV_2019.xlsm
    1.7 MB · Affichages: 39
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 920
Membres
101 840
dernier inscrit
SamynoT