
Envoyé par
deedolith
Heu, pas compris.
Peux-tu être plus explicite ?
tt de suite,
en effet, je vise éviter le risque de changement d'ordre des colonne après un certain temp d'utilisation , ce que nuit au chargement des données correctes
donc j'ai voulu développer code VBA qui permet de chercher la ligne demandé par son nom (1er cellule en fait) , une fois trouver je continue à parcourir et extacter les données selon d'autres conditions
dans le cas de la pièce jointe, je veux chercher la colonne nommé "continent" et charger le textbox "TextBox1" par toutes les équivalents trouvées en colonne nommé "pays" , indépendamment des positions des colonnes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| Dim valeurRecherche As String
Dim plageRecherche As Range
Dim cellule As Range
Dim resultat As String
Dim ws As Worksheet
Dim regCol As Range
Dim regCo2 As Range
Dim regColName1 As String
Dim regColName2 As String
Dim regColPosition As Long
''''******((((( Chercher Position de colonne auomatiquement , sans définr nom colonne pour eviter risque changement ordre colonne en source données))))******
' Spécifiez le nom de la colonne à parcourir
regColName1 = "pays"
' Spécifiez le nom de la colonne d'extraction des données
regColName2 = "continent"
' Spécifiez la feuille de calcul dans laquelle vous souhaitez rechercher la colonne
Set ws = ThisWorkbook.Worksheets("Feuil1")
' Recherchez la colonne nommée "pays" dans la feuille de calcul spécifiée
Set regCol = ws.Rows(1).Find(regColName1, LookIn:=xlValues, LookAt:=xlWhole)
' Récupérez la position de la colonne
regColPosition = regCol.Column
' Recherchez la colonne nommée "pays" dans la feuille de calcul spécifiée
Set regCol2 = ws.Rows(1).Find(regColName2, LookIn:=xlValues, LookAt:=xlWhole)
' Récupérez la position de la colonne
regColPosition2 = regCol2.Column
' Affichez la position de la colonne dans la fenêtre de l'éditeur VBA
MsgBox "La colonne nommée (((" & regColName & "))) se trouve à la position " & regColPosition & " dans la feuille de calcul '" & ws.Name & "'."
_______________________________________________________________________________________________
' Spécifiez la valeur à rechercher
valeurRecherche = "Afrique"
' Spécifiez la plage de recherche (colonne A)
Set plageRecherche = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
' Réinitialise le résultat
resultat = ""
' Parcourt chaque cellule de la plage de recherche
For Each cellule In plageRecherche
' Vérifie si la valeur recherchée correspond à la valeur de la cellule
If cellule.Value = valeurRecherche Then
' Ajoute la valeur équivalente (colonne pays) au résultat
resultat = resultat & cellule.Offset(0, 1).Value & vbCrLf
End If
Next cellule
' Affiche le résultat dans une zone de texte
TextBox1.Text = resultat |
à la logique des chose, j'aurais la possibilité de changer
1 2
| ' Spécifiez la plage de recherche (colonne A)
Set plageRecherche = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) |
par
1 2
| ' Spécifiez la plage de recherche (colonne A)
Set plageRecherche = Range(regColPosition & Cells(Rows.Count, 1).End(xlUp).Row) |
et j'aurais aussi la possibilité de changer
resultat = resultat & cellule.Offset(0, 1).Value & vbCrLf
par
resultat = resultat & cellule.Offset(0, regColPosition2).Value & vbCrLf
j'espère que j'ai pu clarifier le besoin
Partager