Selectionner puis parcourir une colonne en fonction de l'en-tete

Bonjour à tous,

Dans le cadre du développement d'un outil sur Excel, je souhaiterai sélectionner une colonne en fonction d'un mot clé présent dans les en-têtes puis parcourir celle-ci.

J'ai déjà codé la phase de parcours mais ce qui me pose problème c'est la phase de selection de la colonne.

Pouvez-vous m'aider svp ? Merci d'avance

Bonjour,

Tu peux utiliser cela :

numCol = Worksheets(1).UsedRange.Find("Nouveau").Column
For j = 2 To Range(numCol & ":" & numCol).End(xlDown).Row
    MsgBox Cells(j, numCol)
Next j

Cependant je pense qu'il y a plus optimiser comme technique.

EDIT : j'avais fais quelque coquille que j'ai corrigé

Cordialement

Merci pour ta réponse

J'ai trouvé ce code dans un autre sujet :

Sub Col_Select()

Dim Cel As Range

Set Cel = Cells.Find(what:="NomColonne")

If Not Cel Is Nothing Then

Cells(1, Cel.Column).Resize(Cells(Rows.Count, Cel.Column).End(xlUp).Row).Select

Else

MsgBox "Pas trouvé le nom "

Exit Sub

End If

End Sub

et il fonctionne mais je souhaiterai le coller dans un module vide puis mettre en paramètre le nom de ma colonne pour pouvoir réutiliser la fonction dans d'autre module.

Aurais-tu une idée de comment procéder ?

Tu dois tout d'abord ajouter dans le module un argument de cette manière :

Sub Col_Select(nomCol As String) 'C'est ici que ca se passe
    Dim Cel As Range

    Set Cel = Cells.Find(what:=nomCol) 'Et par là
    If Not Cel Is Nothing Then
        Cells(1, Cel.Column).Resize(Cells(Rows.Count, Cel.Column).End(xlUp).Row).Select
    Else
        msgbox "Pas trouvé"
       exit Sub
    End If
End Sub

Ensuite pour appeler la procédure :

Col_Select("test")

PS : je t'invite à utiliser les balises de code pour écrire du code c'est plus lisible et donc plus agréables (dans la barre d'outils)

Merci tu me sauves.

Pour la partie où je dois parcourir la colonne, j'avais écrit comme code :

Sub R_22()

Dim line As Integer

Dim last_line As Integer

line = 4

last_line = Range("AC" & Rows.Count).End(xlUp).Row

While line <= last_line

If Cells(line, 31).Value = "No" Then

If Cells(line, 44).Value = "" Then

Worksheets("Error report").Activate

Reste du Code Manquant car trop long

End Sub

Mais maintenant que j'ai une fonction qui sélectionne la colonne, je veux remplacer les numeros de colonne ("31,44'') par la colonne selectionnée. une idée ?

Je ne vois pas trop ce que tu veux

Peut être ceci ?

If Cells(line, Col_select("La valeur de ton en-tête")).Value = "No" Then

PS : je t'invite à utiliser les balises de code pour écrire du code c'est plus lisible et donc plus agréables (dans la barre d'outils)

Merci beaucoup, je vais essayer ce que tu proposes.

Bonjour, je reviens vers vous car après avoir testé mon code, il ne fonctionne pas. il s'arrête en cours de traitement. C'est urgent et j'ai donc besoin d'aide.

Avec si peux de détails je ne peux pas t'aider, aussi urgent soit-il

Je ne vois pas trop ce que tu veux

et tu me réponds juste

il ne fonctionne pas

Exprime clairement ton besoin !

Alors, je dois mettre à jour un outil de vérification qui a été crée par quelqu'un d'autre que moi. Le problème c'est que le code de cette personne ne fonctionne plus si on ajoute des colonnes au tableau (Cf capture d'écran).

capture d ecran 2019 07 17 a 15 13 56

Pour palier au problème, j'ai essayé de sélectionner une colonne en fonction du nom quelle porte (Cf Capture)

capture d ecran 2019 07 17 a 15 02 12

puis de la parcourir ligne par ligne pour voir si elle respecte les règles de remplissage (Cf Capture).

capture d ecran 2019 07 17 a 15 04 46

Cependant, n'étant pas bonne en vba mon code de sélection s'exécute mais me renvoie toujours que le nom de la colonne est invalide

Puis, on code de parcours bug a la ligne où je définis la dernière ligne de la colonne.

Merci de m'avoir lu

As-tu la possibilité de joindre ton fichier ?

Non malheureusement ce sont des données confidentielles.

For each cel in seleCtion

Il manque le "C".

Cells(compteur, 1)

La valeur par défaut d'une variable est 0, tu dois donc initialiser compteur à 1.

Ta fonction pour sélectionner une colonne ne fonctionne pas puisque tu recherches "nomCol" à chaque fois. Il ne faut pas mettre de guillemet pour utiliser une variable.

PS : je t'invite à utiliser les balises de code pour écrire du code c'est plus lisible et donc plus agréables (dans la barre d'outils)

Du coup, après plusieurs manœuvres j’ai trouvé la solution à mon problème. Trop contente.

Merci à toi pour l’aide que tu m’as apporté.

Bonne journée

Rechercher des sujets similaires à "selectionner puis parcourir colonne fonction tete"