Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Vba créer vecteur pour une colonne dont je dois comparer les valeurs

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 !

Kouik Kouik jr

XLDnaute Occasionnel
Bonsoir tout le monde,


Je reviens avec un nouveau problème sur lequel je bloque.

J'aimerais utiliser un vecteur pour comparer la colonne 1 de valeur de la feuil1 avec les valeurs de la colonne 2 feuil2 sans que le code fasse le va et vient entre les 2 feuilles (car cela fait perdre du temps) !

Quelqu'un aurait il une idée ?

Merci d'avance🙂
 
Re : Vba créer vecteur pour une colonne dont je dois comparer les valeurs

Bonjour,
la perte de temps et le va et vient comme vous dites provient du fait que vous faites probablement des .select entre les onglets. (Sheets(votreFeuille).Select)

Le plus simple pour comparer serait de faire une boucle sur l'ensemble des lignes à couvrir sur l'onglet 1 et les comparer avec les cellules correspondantes sur l'onglet 2. Par exemple :

Code:
DerniereLigne = Sheets(1).Cells(65536,1).End(xlup).Row
For i = 1 to DerniereLigne
    If Cells(i,1).Value = Sheets(2).Cells(i,1).Value Then ...
...

En espérant que ça puisse vous donner un coup de main,

Cordialement,

Étienne
 
Re : Vba créer vecteur pour une colonne dont je dois comparer les valeurs

Bonsoir Kouik Kouik jr, Etienne2323,

Ou bien et si j'ai bien compris :

Application.ScreenUpdating = False
en début de macro et :

Application.ScreenUpdating = True
à la fin.

Bonne soirée.

Jean-Pierre
 
Re : Vba créer vecteur pour une colonne dont je dois comparer les valeurs

je vous montre ce que j'ai déja fait car ce que vous dites est déja présent dans mon code

j'aimerais plus utiliser un vecteur pour comparer la colonne 1 de valeur de la feuil1 avec les valeurs de la colonne 2 feuil2

Au lieu de faire (If .Range("a" & I).Value = Sheets("Symbol").Range("a" & J).Value Then .Range) j'aimerais définir un vecteur ou tableau qui contiennent toutes les données de la colonne 1 et qu'ensuite je n'ai plus qu'a rechercher si la colonne x dans une autre feuille contient une valeur contenue dans le vecteur (tableau) si oui alors je copie cellule correspondante

mais j'ai lu qu'il faut faire FormulaArray mais après je suis un peu perdu

je fais Dim MyArray(250, 1) As Integer


mais après je sais pas comment nommer ce vecteur est comment le comparer ensuite à d'autres colonnes ?

Mon code (si jamais)

Merci bcp

Sub Macro1()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Call Erase1

Call Chargement_donnees

'Suppression lignes vides feuille Symbole


Dim J As Long
With Sheets("Symbol")
For J = .[A65000].End(xlUp).Row To 2 Step -1
If IsError(Application.Match(.Cells(J, 1).Value, Sheets("SYZ").Columns(1), 0)) Then
.Rows(J).Delete
End If
Next J
End With




'Recherche ID finales

With Sheets("Symbol")
Déb = 2
Fin = .Range("a" & .Rows.Count).End(xlUp).Row
End With
With Sheets("Syz")
I = 3
Do While I < Fin
For J = Déb To Fin
If .Range("a" & I).Value = Sheets("Symbol").Range("a" & J).Value Then .Range("b" & I).Value = Sheets("symbol").Range("b" & J).Value
Next J
I = I + 1
Loop
End With

Application.ScreenUpdating = True
Application.DisplayAlerts = True



End Sub
 
- 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

Réponses
10
Affichages
649
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…