Microsoft 365 Sélection d'une colonne à partir d'une cellule précise VBA

RCAVBA

XLDnaute Junior
Bonjour,

Je souhaiterais reporter une colonne à partir d'une valeur d'une cellule
Ci-dessous mon code actuel :

VB:
macolonne = sh.Range("A7:A" & Range("A" & Rows.Count).End(xlUp).Row)
maliste = ws.Range("A4:A" & Range("B" & Rows.Count).End(xlUp).Row)

For m = LBound(maliste, 1) To UBound(maliste, 1)
  existe = False
For n = LBound(macolonne, 1) To UBound(macolonne, 1)
   If macolonne(n, 1) = maliste(m, 1) Then existe = True
Next
If Not existe Then Range("A" & Rows.Count).End(xlUp).Offset(1) = maliste(m, 1)
Next

L'objectif ici est de compléter la colonne A de la feuille sh par des valeurs de la colonne A du fichier ws.
En revanche, ma cellule de départ est sélectionnée à l'avance, je souhaiterais modifier le code à telle sorte qu'il me prend la première cellule commençant par "XX" comme départ. Ce "XX"peut être renseigné dans n'importe quelle colonne.

Merci

Cdt,
 

job75

XLDnaute Barbatruc
Bonjour RCAVBA,

Si je comprends bien la cellule contenant "XX" doit être utilisée à la place de la cellule A7 dans Sh.

Si c'est bien le cas vous pouvez utiliser cette macro :
VB:
Sub Test()
Dim Sh As Worksheet, ws As Worksheet, P As Range, c1 As Range, c2 As Range
Set Sh = Feuil1 'CodeName, à adapter
Set ws = Feuil2 'CodeName, à adapter
If Sh.FilterMode Then Sh.ShowAllData 'si la feuille est filtrée
If ws.FilterMode Then ws.ShowAllData 'si la feuille est filtrée
Set P = ws.Range("A4:A" & ws.Range("B" & ws.Rows.Count).End(xlUp).Row)
If P.Row < 4 Then Exit Sub
Set c1 = Sh.Cells.Find("XX", , xlValues)
Set c2 = Sh.Cells(Sh.Rows.Count, c1.Column).End(xlUp)(2)
c2.Resize(P.Count) = P.Value 'copie les valeurs
Sh.Range(c1, c2.Resize(P.Count)).RemoveDuplicates 1, xlNo 'supprime les doublons
End Sub
A+
 

Discussions similaires

Réponses
5
Affichages
125

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou