VBA comparaison avec vecteur

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
 

vbacrumble

XLDnaute Accro
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
 

vbacrumble

XLDnaute Accro
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 ...
 

Kouik Kouik jr

XLDnaute Occasionnel
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
 

Adamastor77

XLDnaute Nouveau
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
 

Kouik Kouik jr

XLDnaute Occasionnel
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 :)
 

Adamastor77

XLDnaute Nouveau
Re : VBA comparaison avec vecteur

Le mieux serait peut-être de poster un message avec votre fichier en attachement.

En attendant, voici le mien en attachement. (raccourci pour lancer la macro: ctrl+maj+a)


Salutations
Luis
 

Pièces jointes

  • symbol_syx.xls
    27 KB · Affichages: 105

Adamastor77

XLDnaute Nouveau
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
 

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 697
dernier inscrit
Pierrot Hubert