XL 2016 Utiliser like avec une variable

  • Initiateur de la discussion Initiateur de la discussion croco40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

croco40

XLDnaute Occasionnel
Bonjour à tous et merci pour vos aides multiples.
J'ai un fichier sur lequel Feuil(1), plusieurs références (colonne A) sont séparées par des espaces et des informations colonne B, C et D comme dans le tableau du haut fichier joint.
Sur le Feuil(2), j'ai en colonne A la liste des références, et je voudrais récupérer les informations de colonnes B,C & D comme dans le tableau du bas.

J'ai tenté avec Like comme dans la macro ci-dessous mais ça ne fonctionne pas.

For i=2 to 699 (oui mon fichier à beaucoup de lignes)
myvar1=sheets(2).cells(i,1).value
for j = 2 to 321
myvar2=sheets(1).cells(j,1).value

if myvar2 like myvar1 then
recopie des colonne (ça je sais faire)

end if
next j
next i

Par avance merci
Suerte
Croco
PS: Coucouc special à @pierre-jean
 

Pièces jointes

Bonjour croco40, fanfan38,

Ce n'est pas Like mais Split qu'il faut utiliser, voyez ce fichier et la macro :
VB:
Private Sub Worksheet_Activate()
Dim ncol%, tablo, i&, x$, s, j%, n&, k%
ncol = 4 'à adapter
tablo = Sheets("Feuil1").UsedRange.Resize(, ncol) 'matrice, plus rapide
ReDim resu(1 To Rows.Count, 1 To ncol)
For i = 1 To UBound(tablo)
    x = tablo(i, 1)
    If x <> "" Then
        s = Split(tablo(i, 1))
        For j = 0 To UBound(s)
            n = n + 1
            resu(n, 1) = s(j)
            For k = 2 To ncol
                resu(n, k) = tablo(i, k)
        Next k, j
    End If
Next i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A1] '1ère cellule de destination, à adapter
    If n Then .Resize(n, ncol) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1, ncol).ClearContents 'RAZ en dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle est placée dans le code de Feuil2 et se déclenche quand on active la feuille.

Edit : pour tester j'ai recopié la plage A2: D4 sur 30 000 lignes.

La macro s'exécute alors en 0,48 seconde, c'est rapide car elle utilise des tableaux VBA.

A+
 

Pièces jointes

Dernière édition:
Bonjour Fanfan38,
oui je sais, mais je n'ai pas excel sur ce poste et je suis en teletravail

Bonjour Job75,

Bon j'ai fait celle de Fanfan38, pour deux raisons :
1) comme internet a planté, je n'ai pas vu la réponse de Job75
2) je ne maitrise pas du tout les tableaux, il faut vraiment que je m'y mette car je sais que le temps de travail est divisé, il me semble par 100

En tout cas merci à tous les deux pour la rapidité de vos réponses.
A bientôt
Et prenez soins de vous et de vos proches.*
Suerte
Croco
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
76
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
247
Réponses
3
Affichages
598
Retour