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
 

Fichiers joints

cp4

XLDnaute Impliqué
Bonsoir @herve62 , @frenais,;)

Il s'agit surement du Formulaire_Geometre et la combobox1.

voir propriété tag, mettre 5 pour le numéro de colonne.

Bonne soirée
 

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
 

Fichiers joints

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 Impliqué
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
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
 

Fichiers joints

laurent950

XLDnaute Impliqué
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
 

Fichiers joints

Dernière édition:

fresnais

XLDnaute Nouveau
Bonjour Laurent950
je te réponds que ce soir car j'ai eu une bonne grippe qui m'a cloué
je tiens à te remercier sincèrement, le code pour le combobox de mon formulaire fonctionne à merveille.
en te remerciant encore
bien cordialement
jean
 

laurent950

XLDnaute Impliqué
'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
 

Fichiers joints

Dernière édition:

cp4

XLDnaute Impliqué
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
 

Fichiers joints

Dernière édition:

fresnais

XLDnaute Nouveau
Bonjour Cp4
je te présente mes excuses si j'ai été maladroit, mais ce n'est pas volontaire de ma part
je débute dans le forum et ne maîtrise pas toute les paramètres
cordialement
jean
 

Discussions similaires


Haut Bas