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 :

Récupérer le numéro de la colonne où se trouve une valeur [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 116
    Par défaut Récupérer le numéro de la colonne où se trouve une valeur
    Bonjour à tous,

    voilà mon petit problème, j'ai un classeur Excel composé de 2 feuilles. Dans la première j'ai un tableau avec pour chaque colonne une entête.

    ex:
    A B C D E F G H

    Dans ma deuxième feuille j'utilise une userform pour choisir la valeur de la cellule A1. Cette valeur est en fait choisie dans une liste déroulante composée des valeurs des entêtes de la feuille 1.

    Une fois la valeur choisie elle s'affiche dans la cellule A1 et j'aimerais trouvé quelle est la colonne concernée par cet entête (afin d'afficher d'autres renseignements compris dans cette colonne).

    Question, comment faire pour trouver la colonne par une macro?

    Question subsidiaire, comment feriez-vous pour générer une liste dans une combobox, pour que cette liste soit alimentée par les valeurs de la première ligne de la feuille 1 (avec tri croissant et sans doublon)?

    La question subsidiaire c'est tout simplement parce que le code donné par l'enregistreur d'Excel est sûrement un peu pourri...

    J'ai chercher, mais j’avoue ne pas avoir mis la main sur ce que je cherchais...

    Merci pour votre aide.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour rechercher la valeur contenue en A1 de Feuil2 dans la première ligne de Feuil1 et retourner le n° de colonne correspondante
    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
    Sub Rech()
    Dim stRech As String
    Dim c As Range
    Dim Col As Integer
     
    With Sheets("Feuil2")
        stRech = .Range("A1")
        If stRech <> "" Then
            'On fait la recherche dans la ligne 1 de Feuil1
            Set c = Sheets("Feuil1").Rows(1).Find(stRech, LookIn:=xlValues, LookAt:=xlWhole)
            If Not c Is Nothing Then
                Col = c.Column
                Set c = Nothing
                MsgBox Col
            End If
        End If
    End With
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 116
    Par défaut
    Merci beaucoup cela fonctionne parfaitement, je vais même pouvoir recylcer ce code pour d'autres projets.

    Merci beaucoup.

    PS: Quelqu'un a une idée pour réaliser une liste sur les valeurs d'une ligne?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Regarde la FAQ
    Tes 2 questions subsidiaires.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 116
    Par défaut
    ok je vais voir la FAQ, j'ai du mal chercher la première fois!

    Avec le code suivant je n'obtiens que la valeur du dernier entête...

    Une idée de mon erreur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Cell As Range
     
    'Supprime les données existantes dans le ComboBox
    Sheets("Argon").ComboBox1.Clear
     
    'Boucle sur les cellules de la plage A1:A20 pour
    'alimenter le ComboBox
    For Each Cell In Sheets("Résultats").Range("A4").End(xlToRight)
        Sheets("Argon").ComboBox1 = Cell
        'remplissage sans doublon
        If Sheets("Argon").ComboBox1.ListIndex = -1 Then
            Sheets("Argon").ComboBox1.AddItem Cell
        End If
    Next Cell

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Dim LastCol As Integer, i As Integer
     
    'Supprime les données existantes dans le ComboBox
    Sheets("Argon").ComboBox1.Clear
    With Sheets("Résultats")
        LastCol = .Cells(4, .Columns.Count).End(xlToLeft).Column
        For i = 1 To LastCol
            Sheets("Argon").ComboBox1 = .Cells(4, i)
            'remplissage sans doublon
            If Sheets("Argon").ComboBox1.ListIndex = -1 Then
                Sheets("Argon").ComboBox1.AddItem .Cells(4, i)
            End If
        Next i
    End With
    Sheets("Argon").ComboBox1.ListIndex = -1

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

Discussions similaires

  1. Comment récupérer les numéros de ligne/colonne d'une plage
    Par Val2000 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/07/2013, 16h56
  2. Réponses: 3
    Dernier message: 05/08/2011, 10h36
  3. Réponses: 6
    Dernier message: 28/07/2011, 14h21
  4. liste des numéro de ligne où on trouve une valeur
    Par homerlehamster dans le forum Excel
    Réponses: 2
    Dernier message: 23/11/2010, 09h52
  5. Réponses: 1
    Dernier message: 25/06/2008, 10h01

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