[Déplacé .net --> VBA] comparer colonne d un workbook avec 2 autres workbook
ktran
Messages postés4Date d'inscriptionsamedi 9 janvier 2010StatutMembreDernière intervention11 janvier 2010
-
9 janv. 2010 à 18:07
ktran
Messages postés4Date d'inscriptionsamedi 9 janvier 2010StatutMembreDernière intervention11 janvier 2010
-
11 janv. 2010 à 14:57
Bonjour,
j ai ecris un code mais ca bug.
la situation est : j ai un workbook source nomme "testforward", colonne G et a partir de G4, j ai des noms.
la macro doit verifier pour chaque cellule de G4 jusqu a la premiere cellule vide du workbook "testforward" ou se trouve ce nom ; soit dans le workbook "danhmuc8020" ou dans le workbook "danhmuc", et ensuite dans un msgbox specifier dans quel workbook se trouve le nom.
voici le code ecrit :
Sub compare()
myway = ActiveWorkbook.Path & ""
Dim cp As Integer
Dim K As Integer
Dim Danhmuc8020 As Workbook
Set Danhmuc8020 = GetObject(myway & "\Danhmuc8020.xls")
Dim DANHMUCCAMCO As Workbook
Set DANHMUCCAMCO = GetObject(myway & "\DANHMUCCAMCO.xls")
For K = 4 To Sheets("FW").[G65000].End(4).Row
cp = 0
cp = Application.Match(Cells(K, 7), Danhmuc8020.Sheets("Hanmucgiaingan").[B3:B16], 0)
If cp = 0 Then
MsgBox "ok"
Else
cp = Application.Match(Cells(K, 7), DDANHMUCCAMCO.Sheets("HOSE" & "HASTC").[B4:B], 0)
If cp = Cells(4, K) Then
MsgBox "DANHMUCCAMCO"
K = K + 1
End If
Next
End Sub
merci d avance
A voir également:
[Déplacé .net --> VBA] comparer colonne d un workbook avec 2 autres workbook
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 9 janv. 2010 à 19:12
Salut
Au lieu de répéter sans cesse la même question, fais plutôt attention à :
- Choisir la bonne catégorie de code : Ca ressemble à du VBA, pas à du .Net
- Si tu colles du code, utilises la colorisation syntaxique 3ème icone à partir de la droite plus facile à lire
Quand tu dis "ça bugue", dis nous plutôt si tu as un message d'erreur, lequel, sur quelle ligne.
Il faut être le plus précis possible.[list]
[*] Tu termines la définition de ta variable myway par un \
Pourquoi en rajoutes-tu un dans tes GetObject ?
[*] For K = 4 To Sheets("FW").[G65000].End(4).Row
Tu t'adresses à quel classeur avec Sheets("FW") ?
[*] Sheets("HOSE" & "HASTC") revient à écrire Sheets("HOSEHASTC")
Est-ce correct ? As-tu bien une feuille nommée comme ça ?
[*] A mon avis, [B4:B] n'est pas une syntaxe de Range correcte/list Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
ktran
Messages postés4Date d'inscriptionsamedi 9 janvier 2010StatutMembreDernière intervention11 janvier 2010 10 janv. 2010 à 06:24
excuse moi Jack si je me trompe de section.
for K = 4: c est le workbook source "testforward" ou il y a les donnees.
de la, la macro va verifier dans les 2 autres workbook s'il le nom sy trouve (le nom ne peut pas se trouver dans les 2 workbooks, c est soit l un soit l autre).
Sheets("HOSE" & "HASTC") revient à écrire Sheets("HOSEHASTC")
non, dans le workbook "DANHMUCCAMCO", il y a 2 sheets a verifier "HOSE" et "HASTC"
le message d erreur intervient a la ligne : cp = application.match
"type mismatch"