Quelqu'un aurait - il la patience de faire du pas =E0 pas avec moi ?
xp home office xp
Mon probl=E8me :
Ai
sur ma feuille 1 un tableau allant de A7 =E0 E7 sur A81 =E0 E 81
La colonne A contient les libell=E9s(texte),, les colonnes B,C,D,E des
chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 =E0 E7 sur A81 =E0 E 81
La colonne A contient les libell=E9s(texte), les colonnes B,C,D,E des
nombres ou fractions (format de cellule)
Les deux tableaus sont identiques en grandeur avec quelques cellules
vides
Ai trouv=E9 sur le site =AB diff=E9rence entre 2 tableaux =BB pour m=E9moire
:
-------------------------------
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 =3D Sheets("Feuil1").Range("A1:A10") 'Tabeau 1
Set RG2 =3D Sheets("Feuil2").Range("A1:A10") 'Tableau 2
Set Rg3 =3D Sheets("Feuil3").Range("A1") 'Tableau des r=E9sultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le m=EAme nombre de lignes"
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le m=EAme nombre de colonnes"
Exit Sub
End If
Tblo1 =3D RG1: Tblo2 =3D RG2: D =3D 1
Application.ScreenUpdating =3D False
For A =3D 1 To UBound(Tblo1, 1)
For B =3D 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C =3D C + 1
Rg3(C, D) =3D RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) =3D Tblo1(A, B)
Rg3(C, D).Offset(, 2) =3D RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) =3D Tblo2(A, B)
End If
Next
Next
Set RG1 =3D Nothing: Set RG2 =3D Nothing: Set Rg3 =3D Nothing
Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas
l' utiliser
je ne sais pas d=E9terminer RG je crois
je sais atteindre par outils macros visual basic =E9diteur this workbook
mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les r=E9sultats n=E9gatifs soient de couleur
diff=E9rente
il faudrait bien que je commence quelque part et j'aimerais bien
comprendre
alors si quelqu'un voulait bien se d=E9vouer..............
ce serait extr=EAmement gentil de votre part
merci d'avance
tam
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
docm
Bonjour tam.
Premiers pas.
Quand tu es dans l'Éditeur Visual Basic, clique sur le menu Insertion/Module.
Puis fais un copier/Coller de ce qui suit dans la fenêtre d'édition. Ensuite tu choisiras le menu Exécution/Exécuter Sub-Userform ou tu pèseras sur F5 ce qui revient au même.
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A7:E87") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A7:E87") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
End Sub
"tam" a écrit dans le message de news: Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ? xp home office xp
Mon problème :
Ai sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte),, les colonnes B,C,D,E des chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte), les colonnes B,C,D,E des nombres ou fractions (format de cellule) Les deux tableaus sont identiques en grandeur avec quelques cellules vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire : ------------------------------- Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas l' utiliser
je ne sais pas déterminer RG je crois je sais atteindre par outils macros visual basic éditeur this workbook mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur différente
il faudrait bien que je commence quelque part et j'aimerais bien comprendre alors si quelqu'un voulait bien se dévouer.............. ce serait extrêmement gentil de votre part merci d'avance tam
Bonjour tam.
Premiers pas.
Quand tu es dans l'Éditeur Visual Basic, clique sur le menu Insertion/Module.
Puis fais un copier/Coller de ce qui suit dans la fenêtre d'édition.
Ensuite tu choisiras le menu Exécution/Exécuter Sub-Userform ou tu pèseras sur F5 ce qui revient au même.
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A7:E87") 'Tabeau 1
Set RG2 = Sheets("Feuil2").Range("A7:E87") 'Tableau 2
Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le même nombre de lignes"
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le même nombre de colonnes"
Exit Sub
End If
Tblo1 = RG1: Tblo2 = RG2: D = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C = C + 1
Rg3(C, D) = RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) = Tblo1(A, B)
Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) = Tblo2(A, B)
End If
Next
Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
End Sub
"tam" <tamelan@nomade.fr> a écrit dans le message de news: 1138227357.131729.188990@z14g2000cwz.googlegroups.com...
Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ?
xp home office xp
Mon problème :
Ai
sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81
La colonne A contient les libellés(texte),, les colonnes B,C,D,E des
chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81
La colonne A contient les libellés(texte), les colonnes B,C,D,E des
nombres ou fractions (format de cellule)
Les deux tableaus sont identiques en grandeur avec quelques cellules
vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire
:
-------------------------------
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1
Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2
Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le même nombre de lignes"
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le même nombre de colonnes"
Exit Sub
End If
Tblo1 = RG1: Tblo2 = RG2: D = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C = C + 1
Rg3(C, D) = RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) = Tblo1(A, B)
Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) = Tblo2(A, B)
End If
Next
Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas
l' utiliser
je ne sais pas déterminer RG je crois
je sais atteindre par outils macros visual basic éditeur this workbook
mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur
différente
il faudrait bien que je commence quelque part et j'aimerais bien
comprendre
alors si quelqu'un voulait bien se dévouer..............
ce serait extrêmement gentil de votre part
merci d'avance
tam
Quand tu es dans l'Éditeur Visual Basic, clique sur le menu Insertion/Module.
Puis fais un copier/Coller de ce qui suit dans la fenêtre d'édition. Ensuite tu choisiras le menu Exécution/Exécuter Sub-Userform ou tu pèseras sur F5 ce qui revient au même.
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A7:E87") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A7:E87") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
End Sub
"tam" a écrit dans le message de news: Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ? xp home office xp
Mon problème :
Ai sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte),, les colonnes B,C,D,E des chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte), les colonnes B,C,D,E des nombres ou fractions (format de cellule) Les deux tableaus sont identiques en grandeur avec quelques cellules vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire : ------------------------------- Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas l' utiliser
je ne sais pas déterminer RG je crois je sais atteindre par outils macros visual basic éditeur this workbook mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur différente
il faudrait bien que je commence quelque part et j'aimerais bien comprendre alors si quelqu'un voulait bien se dévouer.............. ce serait extrêmement gentil de votre part merci d'avance tam
michdenis
Bonjour Tam,
Ce qui suit te crée un tableau sur la feuil3 et place dans cette feuille, un tableau où il inscrit les adresses où les données de la feuil1 diffère des données de la feuil2
Il ne te reste plus qu'à indiquer dans la procédure, le nom des feuilles et indiquer les plages de cellules pour la feuil1 et la feuil3 et indiquer la cellule où le tableau doit débuter en feuil3
'------------------------------------ Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
'Tableau 1 : adapte le nom feuille et la plage de cellules Set RG1 = Sheets("Feuil1").Range("A1:d10") 'Tabeau 1 'Tableau 2 : Adapte le nom de la feuille et plage Set RG2 = Sheets("Feuil2").Range("A1:d10") 'Tableau 2 'Tableau 3 : Tableau des résultats : affiche les différences Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: C = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) D = D + 1 If Tblo1(A, B) <> Tblo2(A, B) Then Rg3(C, D) = RG1(A, B).Address(0, 0) End If Next D = 0 C = C + 1 Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2 End Sub '------------------------------------
Salutations!
"tam" a écrit dans le message de news: Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ? xp home office xp
Mon problème :
Ai sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte),, les colonnes B,C,D,E des chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte), les colonnes B,C,D,E des nombres ou fractions (format de cellule) Les deux tableaus sont identiques en grandeur avec quelques cellules vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire : ------------------------------- Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas l' utiliser
je ne sais pas déterminer RG je crois je sais atteindre par outils macros visual basic éditeur this workbook mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur différente
il faudrait bien que je commence quelque part et j'aimerais bien comprendre alors si quelqu'un voulait bien se dévouer.............. ce serait extrêmement gentil de votre part merci d'avance tam
Bonjour Tam,
Ce qui suit te crée un tableau sur la feuil3
et place dans cette feuille, un tableau où il
inscrit les adresses où les données de la feuil1
diffère des données de la feuil2
Il ne te reste plus qu'à indiquer dans la procédure,
le nom des feuilles et indiquer les plages de cellules
pour la feuil1 et la feuil3 et indiquer la cellule où le
tableau doit débuter en feuil3
'------------------------------------
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
'Tableau 1 : adapte le nom feuille et la plage de cellules
Set RG1 = Sheets("Feuil1").Range("A1:d10") 'Tabeau 1
'Tableau 2 : Adapte le nom de la feuille et plage
Set RG2 = Sheets("Feuil2").Range("A1:d10") 'Tableau 2
'Tableau 3 : Tableau des résultats : affiche les différences
Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le même nombre de lignes"
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le même nombre de colonnes"
Exit Sub
End If
Tblo1 = RG1: Tblo2 = RG2: C = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
D = D + 1
If Tblo1(A, B) <> Tblo2(A, B) Then
Rg3(C, D) = RG1(A, B).Address(0, 0)
End If
Next
D = 0
C = C + 1
Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
End Sub
'------------------------------------
Salutations!
"tam" <tamelan@nomade.fr> a écrit dans le message de news: 1138227357.131729.188990@z14g2000cwz.googlegroups.com...
Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ?
xp home office xp
Mon problème :
Ai
sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81
La colonne A contient les libellés(texte),, les colonnes B,C,D,E des
chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81
La colonne A contient les libellés(texte), les colonnes B,C,D,E des
nombres ou fractions (format de cellule)
Les deux tableaus sont identiques en grandeur avec quelques cellules
vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire
:
-------------------------------
Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1
Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2
Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox "Le tableau n'a pas le même nombre de lignes"
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox "Le tableau n'a pas le même nombre de colonnes"
Exit Sub
End If
Tblo1 = RG1: Tblo2 = RG2: D = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C = C + 1
Rg3(C, D) = RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) = Tblo1(A, B)
Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) = Tblo2(A, B)
End If
Next
Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas
l' utiliser
je ne sais pas déterminer RG je crois
je sais atteindre par outils macros visual basic éditeur this workbook
mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur
différente
il faudrait bien que je commence quelque part et j'aimerais bien
comprendre
alors si quelqu'un voulait bien se dévouer..............
ce serait extrêmement gentil de votre part
merci d'avance
tam
Ce qui suit te crée un tableau sur la feuil3 et place dans cette feuille, un tableau où il inscrit les adresses où les données de la feuil1 diffère des données de la feuil2
Il ne te reste plus qu'à indiquer dans la procédure, le nom des feuilles et indiquer les plages de cellules pour la feuil1 et la feuil3 et indiquer la cellule où le tableau doit débuter en feuil3
'------------------------------------ Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
'Tableau 1 : adapte le nom feuille et la plage de cellules Set RG1 = Sheets("Feuil1").Range("A1:d10") 'Tabeau 1 'Tableau 2 : Adapte le nom de la feuille et plage Set RG2 = Sheets("Feuil2").Range("A1:d10") 'Tableau 2 'Tableau 3 : Tableau des résultats : affiche les différences Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: C = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) D = D + 1 If Tblo1(A, B) <> Tblo2(A, B) Then Rg3(C, D) = RG1(A, B).Address(0, 0) End If Next D = 0 C = C + 1 Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2 End Sub '------------------------------------
Salutations!
"tam" a écrit dans le message de news: Bonjour
Quelqu'un aurait - il la patience de faire du pas à pas avec moi ? xp home office xp
Mon problème :
Ai sur ma feuille 1 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte),, les colonnes B,C,D,E des chiffres entiers ou fractions (format de cellule)
sur ma feuille 2 un tableau allant de A7 à E7 sur A81 à E 81 La colonne A contient les libellés(texte), les colonnes B,C,D,E des nombres ou fractions (format de cellule) Les deux tableaus sont identiques en grandeur avec quelques cellules vides
Ai trouvé sur le site « différence entre 2 tableaux » pour mémoire : ------------------------------- Sub ComparaisonTableau()
Dim RG1 As Range, RG2 As Range Dim Tblo1, Tblo2, Rg3 As Range Dim A As Long, B As Integer, C As Long, D As Integer
Set RG1 = Sheets("Feuil1").Range("A1:A10") 'Tabeau 1 Set RG2 = Sheets("Feuil2").Range("A1:A10") 'Tableau 2 Set Rg3 = Sheets("Feuil3").Range("A1") 'Tableau des résultats
If RG1.Rows.Count <> RG2.Rows.Count Then MsgBox "Le tableau n'a pas le même nombre de lignes" Exit Sub End If If RG1.Columns.Count <> RG2.Columns.Count Then MsgBox "Le tableau n'a pas le même nombre de colonnes" Exit Sub End If
Tblo1 = RG1: Tblo2 = RG2: D = 1 Application.ScreenUpdating = False For A = 1 To UBound(Tblo1, 1) For B = 1 To UBound(Tblo1, 2) If Tblo1(A, B) <> Tblo2(A, B) Then C = C + 1 Rg3(C, D) = RG1(A, B).Address(0, 0) Rg3(C, D).Offset(, 1) = Tblo1(A, B) Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0) Rg3(C, D).Offset(, 3) = Tblo2(A, B) End If Next Next
Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing Erase Tblo1: Erase Tblo2
qui ferait exactement ce que je veux, je crois, sauf que je ne sais pas l' utiliser
je ne sais pas déterminer RG je crois je sais atteindre par outils macros visual basic éditeur this workbook mais rien ne se passe donc y a une bulle
basique certes mais surtout frustant
et en plus j'aimerais que les résultats négatifs soient de couleur différente
il faudrait bien que je commence quelque part et j'aimerais bien comprendre alors si quelqu'un voulait bien se dévouer.............. ce serait extrêmement gentil de votre part merci d'avance tam