Selction cellule via combobox

Bonjour,

Je souhaite grâce à une Combobox présent dans une userform, sélectionner une cellule présent sur une ligne afin d'en archivée les coordonnées (notamment le numéro de colonne). Pour j'ai codé ce code, seulement, il ne fonctionne pas :/, l'userform plante au moment ou je sélectionne ma cellule, voila mon code:

Dim a()

Private Sub ComboBox1_Change()

   If Usfa.ComboBox1 <> "" And IsError(Application.Match(Usfa.ComboBox1, a, 0)) Then
        Set d1 = CreateObject("Scripting.Dictionary")
        tmp = UCase(Usfa.ComboBox1) & "*"
        For Each c In a
            If UCase(c) Like tmp Then d1(c) = ""
        Next c
        Usfa.ComboBox1.List = d1.keys
        Usfa.ComboBox1.DropDown
    End If
End Sub

Private Sub CommandButton3_Click()
     'Valider la saisie
      If IsNull(Usfa.ComboBox1) Then
          MsgBox "Vous devez sélectionner un banc."
          Usfa.ComboBox1.SetFocus
          Exit Sub
      End If
      With BDD
          For i = AC To .Range("11" & Columns.Count).End(xlUp).Column
              If .Cells(11, i) = Usfa.ComboBox1.Value Then
                  Cells(11, i).Select
                  Exit For
              End If
          Next i
      End With
      Unload Usfa
End Sub

Private Sub CommandButton4_Click()
      Unload Usfa
End Sub

Private Sub UserForm_Initialize()
    Dim a As Variant
    Set f = BDD
    a = f.Range("AC11:DZ11").Value
    ComboBox1.Column() = a
End Sub

le debogeur me signal le bug au niveau de la troisieme ligne...Mais je n'arrive pas trouver la reel source de mon probleme...

Auriez vous de votre coté peu etre un nouveau code qui pourait grace a un userform et la valeur selectionner dans une combobox simplement selectionner la cellule présent sur la ligne.

Cordialement

max

Bonjour Maxgib, bonjour le forum,

Difficile de te répondre avec précision sans le fichier qui va bien !...

Je vois une incohérence dans ton code. La variable a déclarée une première fois au niveau module en tant que tableau : Dim a() puis une seconde fois au niveau procédure à l'initialisation de l'UserForm : Dim a As Variant. Je supprimerais cette seconde qui fait perdre la portabilité de la première.

Ensuite Set F = BDD signifie que BDD n'est pas le nom de l'onglet (affiché en bas) mais le Codename de ce dernier. Propriété (Name) dans la fenêtre des propriété de l'onglet (la première). À vérifer...

re

Merci de ta reponse, mais ducoup c'est la ligne du dessous qui pose pb :/

Voila le code a part dans un excel.

Si ca peut t'aider, mais je ne trouve toujours pas les causes du bug

cordialement

max

Re,

J'avoue que je ne comprends pas ton code...

Essaie ça :

Private Sub CommandButton3_Click()
     'Valider la saisie
      If IsNull(Usfa.ComboBox1) Then
          MsgBox "Vous devez sélectionner un banc."
          Usfa.ComboBox1.SetFocus
          Exit Sub
      End If
      With bdd
          For i = 29 To .Cells(11, Columns.Count).End(xlUp).Column
              If CStr(.Cells(11, i)) = Usfa.ComboBox1.Value Then
                  .Cells(11, i).Select
                  Exit For
              End If
          Next i
      End With
      Unload Usfa
End Sub

ok! ca marche merci de ton aide!!!

Re-bonjour,

Dans un premier temps merci de ton aide, suite à cette sélection, je souhaite maintenant sélectionner les valeurs présent dans cette dans cette colonne, c'est à dire les cellule non-vide afin de sélectionner les lignes entières et de les copier dans une autre feuille afin d'en sortir des micro-liste .

Merci d'avance de votre aide cordialement

MAX

Re,

Copier OK ! Mais coller où ?

J'ai rajouté un onglet nommé Destination et j'ai modifié le code. Tu adapteras pour la copie...

Private a As Variant
Private f As Worksheet

Private Sub UserForm_Initialize()
Set f = bdd
a = f.Range("AC11:DZ11").Value
ComboBox1.Column() = a
End Sub

Private Sub CommandButton3_Click()
Dim I As Integer
Dim DL As Integer
Dim TV() As Variant

'Valider la saisie
If IsNull(Usfa.ComboBox1) Then
    MsgBox "Vous devez sélectionner un banc."
    Usfa.ComboBox1.SetFocus
    Exit Sub
End If
For I = 29 To f.Cells(11, Columns.Count).End(xlUp).Column
    If CStr(f.Cells(11, I)) = Usfa.ComboBox1.Value Then
        f.Cells(11, I).Select
        Exit For
    End If
Next I
Debug.Print I
DL = f.Cells(Application.Rows.Count, I).End(xlUp).Row
For J = 12 To DL
    If f.Cells(J, I) <> "" Then
        ReDim Preserve TV(K)
        TV(K) = Cells(J, I).Value
        K = K + 1
    End If
Next J
If K > 0 Then
    Sheets("Destination").Range("A1").Resize(1, UBound(TV, 1) + 1).Value = TV 'onglet et cellule à adapter ici copie en ligne
    'Sheets("Destination").Range("A1").Resize(UBound(TV, 1) + 1, 1).Value = Application.Transpose(TV) 'onglet et cellule à adapter ici copie en colonne
End If
Unload Usfa
End Sub

Private Sub CommandButton4_Click()
Unload Usfa
End Sub

Merci de ta réponse, seulement, ce n'est pas seulement la colonne que je désire copier mais la ligne entière de chaque cellule sélectionner... Pour copier une ligne entière puis-je utiliser la fonction "entirerow.transpose"?

Merci pour tes réponse!

Cordialement

MAX

Re,

Arf Max ! Copier où p... de b... de m... ? (purée de banane de Mauritanie, œuf corse...)

Private Sub CommandButton3_Click()
Dim I As Integer
Dim DL As Integer
Dim DEST As Range

'Valider la saisie
If IsNull(Usfa.ComboBox1) Then
    MsgBox "Vous devez sélectionner un banc."
    Usfa.ComboBox1.SetFocus
    Exit Sub
End If
For I = 29 To f.Cells(11, Columns.Count).End(xlUp).Column
    If CStr(f.Cells(11, I)) = Usfa.ComboBox1.Value Then
        f.Cells(11, I).Select
        Exit For
    End If
Next I
DL = f.Cells(Application.Rows.Count, I).End(xlUp).Row
For J = 12 To DL
    With Sheets("Destination") 'à adapter
        If f.Cells(J, I) <> "" Then
            Set DEST = IIf(.Range("A1").Value = "", .Range("A1"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)) 'a adapter
            f.Rows(J).Copy DEST
        End If
    End With
Next J
Unload Usfa
End Sub

Merci c'est exactement ça qu'il me fallait merci!

Rechercher des sujets similaires à "selction via combobox"