J'ai cr=E9=E9e un userform qui permet =E0 l'utilisateur de comparer deux
plages cellule par cellule pour voir si elles sont identiques. Une fois
les plages s=E9lectionn=E9es, la macro ins=E8re une ou plusieurs colonnes
(selon la largeur des plages) =E0 gauche de la premi=E8re plage. Elle
ins=E8re ensuite une formule SI plage1=3Dplage2 alors patatipatata....
Jusque l=E0 c'est bon.
Sauf que les v=E9rif sont syst=E9matiquement situ=E9es en colonne A. C'est
l=E0 le probl=E8me : comment faire pour ins=E9rer les v=E9rif en C23 si les
plages =E0 comparer sont D23 et F23 c'est-=E0-dire sur la m=EAme ligne que
la cellule en haut =E0 gauche de la premi=E8re plage =E0 comparer ?
Voici mon code :
Private Sub CommandButton1_Click()
'Macro pour comparer deux s=E9ries de donn=E9es terme =E0 terme
Dim Plage1 As String
Plage1 =3D UserForm7.RefEdit1.Value
Dim Plage2 As String
Plage2 =3D UserForm7.RefEdit2.Value
'Insertion de la ou les colonne(s) de v=E9rification
Dim i As Integer, nbcol As Integer, nblig As Integer
nbcol =3D Range(UserForm7.RefEdit1.Value).Columns.Count
nblig =3D Range(UserForm7.RefEdit1.Value).Rows.Count
For i =3D 1 To nbcol
Range(UserForm7.RefEdit1.Value).Range("A1").EntireColumn.Insert
Next
' Verifie la concordance des 2 s=E9ries de donn=E9es terme =E0 terme
Dim Verif1 As Range, Verif2 As Range
Set Verif1 =3D Range(UserForm7.RefEdit1.Value)
Set Verif2 =3D Range(UserForm7.RefEdit2.Value)
For y =3D 1 To nblig
For x =3D 1 To nbcol
Cells(y, x).Formula =3D "=3Dif(" & Verif1.Resize(1, 1).Offset(y - 1, x
- 1).Address _
& "=3D" & Verif2.Resize(1, 1).Offset(y - 1, x - 1).Address _
& ",""Cool !"",""WRONG !"")"
If Cells(y, x).Value =3D "WRONG !" Then Cells(y, x).Font.Bold =3D True
If Cells(y, x).Value =3D "WRONG !" Then Cells(y, x).Font.Italic =3D True
If Cells(y, x).Value =3D "WRONG !" Then Cells(y, x).Font.ColorIndex =3D 3
Next x
Next y
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
JLuc
*Bonjour Richard G.*,
Private Sub CommandButton1_Click()
'Macro pour comparer deux séries de données terme à terme
Dim Plage1 As String Plage1 = UserForm7.RefEdit1.Value Dim Plage2 As String Plage2 = UserForm7.RefEdit2.Value
'Insertion de la ou les colonne(s) de vérification
lig1 = Plage1.Row col1 = Plage1.Column
Dim i As Integer, nbcol As Integer, nblig As Integer nbcol = Range(UserForm7.RefEdit1.Value).Columns.Count nblig = Range(UserForm7.RefEdit1.Value).Rows.Count For i = 1 To nbcol Range(UserForm7.RefEdit1.Value).Range("A1").EntireColumn.Insert Essaie : .Cells(lig1, col1)
Pas garanti, j'ai pas essayer ! :oÞ mais si tu prends Range("A1"), tu aura toujours l'insertion avant la colonne A (a mon avis) alors que Cells(lig1, col1) devrait prendre le premiere cellule de la plage
' Verifie la concordance des 2 séries de données terme à terme
Dim Verif1 As Range, Verif2 As Range Set Verif1 = Range(UserForm7.RefEdit1.Value) Set Verif2 = Range(UserForm7.RefEdit2.Value)
For y = 1 To nblig For x = 1 To nbcol Cells(y, x).Formula = "=if(" & Verif1.Resize(1, 1).Offset(y - 1, x - 1).Address _ & "=" & Verif2.Resize(1, 1).Offset(y - 1, x - 1).Address _ & ",""Cool !"",""WRONG !"")" If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Bold = True If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Italic = True If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.ColorIndex = 3 Next x Next y
'Déchargement du Userform
Unload Me UserForm7.Hide
End Sub
Merci par avance !!!
A+
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
*Bonjour Richard G.*,
Private Sub CommandButton1_Click()
'Macro pour comparer deux séries de données terme à terme
Dim Plage1 As String
Plage1 = UserForm7.RefEdit1.Value
Dim Plage2 As String
Plage2 = UserForm7.RefEdit2.Value
'Insertion de la ou les colonne(s) de vérification
lig1 = Plage1.Row
col1 = Plage1.Column
Dim i As Integer, nbcol As Integer, nblig As Integer
nbcol = Range(UserForm7.RefEdit1.Value).Columns.Count
nblig = Range(UserForm7.RefEdit1.Value).Rows.Count
For i = 1 To nbcol
Range(UserForm7.RefEdit1.Value).Range("A1").EntireColumn.Insert
Essaie : .Cells(lig1, col1)
Pas garanti, j'ai pas essayer ! :oÞ mais si tu prends Range("A1"), tu
aura toujours l'insertion avant la colonne A (a mon avis) alors que
Cells(lig1, col1) devrait prendre le premiere cellule de la plage
' Verifie la concordance des 2 séries de données terme à terme
Dim Verif1 As Range, Verif2 As Range
Set Verif1 = Range(UserForm7.RefEdit1.Value)
Set Verif2 = Range(UserForm7.RefEdit2.Value)
For y = 1 To nblig
For x = 1 To nbcol
Cells(y, x).Formula = "=if(" & Verif1.Resize(1, 1).Offset(y - 1, x
- 1).Address _
& "=" & Verif2.Resize(1, 1).Offset(y - 1, x - 1).Address _
& ",""Cool !"",""WRONG !"")"
If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Bold = True
If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Italic = True
If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.ColorIndex = 3
Next x
Next y
'Déchargement du Userform
Unload Me
UserForm7.Hide
End Sub
Merci par avance !!!
A+
--
JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
'Macro pour comparer deux séries de données terme à terme
Dim Plage1 As String Plage1 = UserForm7.RefEdit1.Value Dim Plage2 As String Plage2 = UserForm7.RefEdit2.Value
'Insertion de la ou les colonne(s) de vérification
lig1 = Plage1.Row col1 = Plage1.Column
Dim i As Integer, nbcol As Integer, nblig As Integer nbcol = Range(UserForm7.RefEdit1.Value).Columns.Count nblig = Range(UserForm7.RefEdit1.Value).Rows.Count For i = 1 To nbcol Range(UserForm7.RefEdit1.Value).Range("A1").EntireColumn.Insert Essaie : .Cells(lig1, col1)
Pas garanti, j'ai pas essayer ! :oÞ mais si tu prends Range("A1"), tu aura toujours l'insertion avant la colonne A (a mon avis) alors que Cells(lig1, col1) devrait prendre le premiere cellule de la plage
' Verifie la concordance des 2 séries de données terme à terme
Dim Verif1 As Range, Verif2 As Range Set Verif1 = Range(UserForm7.RefEdit1.Value) Set Verif2 = Range(UserForm7.RefEdit2.Value)
For y = 1 To nblig For x = 1 To nbcol Cells(y, x).Formula = "=if(" & Verif1.Resize(1, 1).Offset(y - 1, x - 1).Address _ & "=" & Verif2.Resize(1, 1).Offset(y - 1, x - 1).Address _ & ",""Cool !"",""WRONG !"")" If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Bold = True If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.Italic = True If Cells(y, x).Value = "WRONG !" Then Cells(y, x).Font.ColorIndex = 3 Next x Next y
'Déchargement du Userform
Unload Me UserForm7.Hide
End Sub
Merci par avance !!!
A+
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS