Code VBA à partir d'une algo

Thibault LB

XLDnaute Junior
Bonjour à tous,

J'ai deux classeurs, contenant deux listes de données.

Je veux que lorsque l'on met à jour le fichier 1, la liste de l'autre se mette à jour. Mais attention, je ne dois mettre à jour que les quatres premières colonnes, les autres étant des chiffres associés aux données.

Je dois donc regarder si chaque ligne du fichier 1 apparait dans le fichier 2. Des lignes ayant été ajouté ou supprimé dans le fichier 1, je dois récupérer le numéro de ces lignes dans un tableau pour ensuite pouvoir insérer (ou supprimer) des lignes à ces emplacements.

Avec un compteur, on vérifie que les lignes sont les mêmes.
Si les lignes sont manquantes (ou en trop) alors on met le numéro de la ligne dans un tableau définit.


Tab [ ]
'7 parce que c'est la qu'est ma première cellule à observer
Pour i de 7 à maxCelluleNonVide

If A = [Classeur2]Feuil2!A:A
numLigne = i
End if
i --> Tab [ ]


Un truc comme ça :/. Mais en VBA, je ne comprends vraiment pas grand chose, même si je m'y intéresse...

Merci d'avance de votre aide.
Thibault.
 

Thibault LB

XLDnaute Junior
Re : Code VBA à partir d'une algo

Bon alors voila ce que j'ai reussi à faire pour le moment :




Private Function EstDansCollection(Coln As Object, Item As String) As Boolean
Dim obj As Object
On Error Resume Next
Set obj = Coln(Item)
EstDansCollection = Not obj Is Nothing
End Function

'Cette fonction me permet de vérifier si le fichier est deja ouvert (il me l'ouvrait en lecture seule sinon), mais ça ne marche pas :'(

Public Function MacroExcel()
'Permet d'ouvrir le fichier Test1.xls si ce n'est pas le cas.
If EstDansCollection(Workbooks, "Test1.xls") = True Then
MsgBox "Le classeur est déjà ouvert !"
Else
Workbooks.Open Filename:="D:\Documents and Settings\yr26686\Bureau\Test1.xls"
End If

End Function




Sub Test()

'MacroExcel

Windows("Test1.xls").Activate
Dim numLigne As Long
Dim NomTableau(50) As Integer
Dim i As Integer


'Je veux vérifier si chaque cellule A7 jusqu'a A[X] (avec X dernière cellule non vide de la colonne) du fichier Test2 est dans Test1, et si ce n'est pas le cas, stocker le numéro de la ligne dans le tableau.

For i = 7 To 9

'Remplacer "???" par la comparaison de A avec la liste du fichier Test2, mais je ne trouve pas comment faire...
If ??? Then
NomTableau(i) = numLigne
End If
Next i

'Cela me sert juste à vérifier si les données ont été entrées dans le tableau
For numLigne = 0 To 50
MsgBox NomTableau(numLigne)
Next numLigne
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 413
Messages
2 088 197
Membres
103 763
dernier inscrit
p.michaux