Macro comparer deux colonnes

Bonjour à tous

J'ai un souci au niveau de l'importation de données

J'utilise Power Query

Mon problème est que j'ai deux colonnes avec les mêmes nom (pas malin)

Power Query me renomme une colonne , mais cela ne m'arrange pas

Car les valeurs que je dois retrouver sont soit dans l'une soit dans l'autre , et pour couronner le tout les colonnes ne sont pas toujours au même endroit

La seul chose auquel je peux faire mon repère c'est que dans l'une j'ai plus de cellules avec "---"

J'ai commencé à faire une boucle pour rechercher les colonnes en question car j'ai 15 colonnes dans mes données il faut déjà repérer les fameuses colonnes :

For X = 1 To 20
For Y = 1 To 4
If Left(Cells(Y, X).Value, 8) = "MaColonn" Then A = A + 1: MsgBox Cells(Y, x).Value
Next Y
Next X

Mais je dois avouer que je n'arrive pas à faire la suite

Je voudrais simplement les renommer, style "Resultat1" et Résultat2" par exemple

Merci pour votre aide

Je vous laisse un extrait de mes données

Désolé pour les répétions (colonnes)

4colonnes.xlsm (14.39 Ko)

Bonjour,

Si les titres des colonnes sont sur la ligne 1

 For i = 1 To 2
    c = Application.Match("MaColonn", Rows(1), 0)
    Cells(1, c) = "Resultat" & i
 Next i

Cdlt

Merci Arturo,

Elles peuvent se trouver entre la ligne 1 et la 4

Alors, essayez ceci:

    For n = 1 To 2
        On Error Resume Next
        Set c = Rows("1:4").Find("MaColonn", lookat:=xlWhole)
        If Err.Number = 0 Then Cells(c.Row, c.Column) = "Resultat" & n
        On Error GoTo 0
    Next n

Cdlt

Ok ça marche bien merci

Mais maintenant pour repérer qu'elle est la colonne entre les deux qui à le plus de "---" (c'est celle ci ou je vais y récupérer mes valeurs )

Voici, en premier lieu il faut déterminer quelle est la dernière ligne du fichier, pour cela je me suis basé sur la colonne A, à vous de modifier si ce n'était pas le cas.

    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    ReDim Nb(DerLig) As Long
    NbMax = 0
    For n = 1 To 2
        On Error Resume Next
        Set c = Rows("1:4").Find("MaColonn", lookat:=xlWhole)
        If Err.Number = 0 Then Cells(c.Row, c.Column) = "Resultat" & n
        Nb(n) = Application.WorksheetFunction.CountIf(Range(Cells(c.Row, c.Column), Cells(DerLig, c.Column)), "---")
        If Nb(n) > NbMax Then NbMax = Nb(n)
        On Error GoTo 0
    Next n
    MsgBox "c'est la colonne " & c & " qui contient le plus de " & "---"

Cdlt

Trop fort :) moi qui galère depuis des jours :)

Bon là je doit partir bosser, mais à priori il me donne pas la bonne colonne sur les nombre de ---

En tout cas merci à toi c'est cool et tôt le matin je vais passer une excellente journée grâce à toi

Bonne journée

S'il ne donne pas la bonne colonne, c'est peut-être que le contenu des cellules n'est pas exactement "---", à vérifier.

Bonsoir,

Effectivement c'était une erreur de ma part.

Problème réglé

Encore un grand merci pour ton aide.

Rechercher des sujets similaires à "macro comparer deux colonnes"