VBA comparaison avec vecteur

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

Je bloque actuellement sur les array

J'aimerais savoir si il est possible ou pas de faire une comparaison de colonnes avec un vecteur (array) définis

J'aimerais que le vecteur soit en fait toute la colonne A par exemple

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


Quelqu'un peut il me donner un coup de main ?

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
 
Re : VBA comparaison avec vecteur

Bonjour


Ah bon ?

C'est bien de l'Array de chez Array ca non ??? (exemple issu du lien cité plus bas)

Code:
Sub RemplirTab()
Dim I As Byte, TabContributeurs(1 To 20) 
For I = 1 To 20
TabContributeurs(I) = Range("A" & I)
Next I
End Sub
 
Re : VBA comparaison avec vecteur

Re



????
Code:
Sub RemplirTabColonneA()
Dim I As Byte, TabContributeursA(1 To 20) 
For I = 1 To 20
TabContributeursA(I) = Range("A" & I)
Next I
End Sub
Code:
Sub RemplirTabColonneB()
Dim I As Byte, TabContributeursB(1 To 20) 
For I = 1 To 20
TabContributeursB(I) = Range("B" & I)
Next I
End Sub

Tu as 2 tableaux maintenant non ?

Reste plus qu' à les comparer ...
 
Re : VBA comparaison avec vecteur

j'essaie avec le code suivant mais cela ne marche toujours pas

(je suis nul en vba je sais .-))

Sub comparetableau()

With Sheets("Symbol")

Dim I As Byte, TabContributeursA(1 To 20)

Déb = 2
Fin = .Range("a" & .Rows.Count).End(xlUp).Row
End With


For I = 2 To 100

TabContributeursA(I) = Range("A" & I)

Next I

Dim TabContributeursB(1 To 20)

With Sheets("Syz")

For I = 3 To 100

TabContributeursB(I) = Range("A" & I)

If .Range(TabContributeursA(I)).Value = .Range(TabContributeursB(I).Value) Then .Range("b" & I).Value = Sheets("symbol").Range("b" & J).Value

Next I

'Next J
'I = I + 1
'Loop
End With






End Sub
 
Re : VBA comparaison avec vecteur

Bonjour,


le code suivant devrait faire ce que vous voulez:

Code:
     Sub comparetableau()

Dim Fin As Long
Dim I As Long
Dim TabContributeursA() As Double
Dim TabContributeursB() As Double
Dim sym As Object
Dim Syz As Object

Set sym = Sheets("symbol")
Set Syz = Sheets("Syz")

With sym
    Fin = .Range("a" & .Rows.Count).End(xlUp).Row
End With

ReDim TabContributeursA(Fin)
ReDim TabContributeursB(Fin)

For I = 2 To Fin
    TabContributeursA(I) = Range("A" & I)
Next

For I = 3 To Fin
    TabContributeursB(I) = Syz.Range("A" & I)
    If TabContributeursA(I) = TabContributeursB(I) Then Syz.Range("b" & I).Value = sym.Range("b" & I).Value
Next


End Sub


J'espère que c'est bien le cas. Je n'ai pas le temps maintenant de vous expliquer les erreurs que j'ai vues dans votre code. Je vous laisse regarder celui-ci et répondrai très volontiers à vos questions demain ou après-demain.


salutations
Luis
 
Re : VBA comparaison avec vecteur

Merci pour ce code ca m'a l'air pas mal du tout

mais cela ne marche pas pour l'instant car cela me met debugage sur la ligne

TabContributeursA(I) = Range("A" & I)

Une idée de la raison ?

Car la je vois pas du tout...

merci et a demain car je suis sur d'avoir encore des questions 🙂
 
Re : VBA comparaison avec vecteur

Après re-lecture de mon code, il se peut que j'aie commis une imprécision à la ligne qui pose problème. Imprécision qui passerait quand même en 2003 mais plus en 2007.

Remplacez la ligne:

Code:
TabContributeursA(I) = Range("A" & I)

par:
Code:
TabContributeursA(I) = sym.Range("A" & I)



Salutations
Luis
 
- 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 worksheet_change
Réponses
29
Affichages
252
Réponses
2
Affichages
37
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
505
Réponses
4
Affichages
363
Réponses
3
Affichages
49
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
83
Réponses
3
Affichages
600
Réponses
7
Affichages
181
Retour