Bonjour Fred,
Essaie ceci :
'-----------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'-----------------------------------
Salutations!
"fred" a écrit dans le message de news:
4339c620$0$8288$
Bonjour,
J'aimerais par une macro comparer 2 colonnes colB, colC ligne par ligne.
Si 2 cellules ont le même contenu (texte), le contenu cellule ColB se
déplace en offset (1,-1) et le contenu de la cellule ColC est effacée.
Merci de votre aide
Bonjour Fred,
Essaie ceci :
'-----------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'-----------------------------------
Salutations!
"fred" <fredgarlon@free.fr> a écrit dans le message de news:
4339c620$0$8288$626a14ce@news.free.fr...
Bonjour,
J'aimerais par une macro comparer 2 colonnes colB, colC ligne par ligne.
Si 2 cellules ont le même contenu (texte), le contenu cellule ColB se
déplace en offset (1,-1) et le contenu de la cellule ColC est effacée.
Merci de votre aide
Bonjour Fred,
Essaie ceci :
'-----------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'-----------------------------------
Salutations!
"fred" a écrit dans le message de news:
4339c620$0$8288$
Bonjour,
J'aimerais par une macro comparer 2 colonnes colB, colC ligne par ligne.
Si 2 cellules ont le même contenu (texte), le contenu cellule ColB se
déplace en offset (1,-1) et le contenu de la cellule ColC est effacée.
Merci de votre aide
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Concernant les bouquins, il y en a plusieurs bons sur le marché.
Mes auteurs préférés : John Walkenbach - Excel 2000 et VBA le guide du
développeur
"Excel 2003 VBA Programmer's Reference" par Paul Kimmel, Stephen Bullen,
John Green, Rob Bovey, Robert Rosenberg (la traduction
française de ce volume existe!)
Lorsque c'est possible, la combinaison de plusieurs ouvrages sur le sujet
enrichi l'apprentissage. À part des ouvrages cités, je
suis sûr qu'il y en a beaucoup d'autres!. Il s'agit de bouquiner un peu
pour trouver la perle rare qui convient à son niveau de
connaissance.
Salutations!
"fred" a écrit dans le message de news:
433a7033$0$18081$
OK je viens de retester...la macro est correcte effectivement...En fait la
valeur de la ColB doit être strictement égale à la valeur de la ColC...là
était le problème...car il y avait des espaces en fin de cellules!
J'ai dû rajouter ceci avant de commencer la boucle
For Each Cellule In ActiveSheet.UsedRange
Cellule.Value = RTrim(Cellule.Value)
Next
Y'a t-il un bon livre pédagogique pour mettre en place des macros de ce
style et en général (qui explique pas à pas détaillé...) car j'aimerais
avancé???
Merci beaucoup pour ton aide!
"michdenis" a écrit dans le message de news:Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de
la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Concernant les bouquins, il y en a plusieurs bons sur le marché.
Mes auteurs préférés : John Walkenbach - Excel 2000 et VBA le guide du
développeur
"Excel 2003 VBA Programmer's Reference" par Paul Kimmel, Stephen Bullen,
John Green, Rob Bovey, Robert Rosenberg (la traduction
française de ce volume existe!)
Lorsque c'est possible, la combinaison de plusieurs ouvrages sur le sujet
enrichi l'apprentissage. À part des ouvrages cités, je
suis sûr qu'il y en a beaucoup d'autres!. Il s'agit de bouquiner un peu
pour trouver la perle rare qui convient à son niveau de
connaissance.
Salutations!
"fred" <fredgarlon@free.fr> a écrit dans le message de news:
433a7033$0$18081$626a14ce@news.free.fr...
OK je viens de retester...la macro est correcte effectivement...En fait la
valeur de la ColB doit être strictement égale à la valeur de la ColC...là
était le problème...car il y avait des espaces en fin de cellules!
J'ai dû rajouter ceci avant de commencer la boucle
For Each Cellule In ActiveSheet.UsedRange
Cellule.Value = RTrim(Cellule.Value)
Next
Y'a t-il un bon livre pédagogique pour mettre en place des macros de ce
style et en général (qui explique pas à pas détaillé...) car j'aimerais
avancé???
Merci beaucoup pour ton aide!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
u6wnNg9wFHA.2000@TK2MSFTNGP10.phx.gbl...
Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de
la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!
Bonjour Fred,
Concernant les bouquins, il y en a plusieurs bons sur le marché.
Mes auteurs préférés : John Walkenbach - Excel 2000 et VBA le guide du
développeur
"Excel 2003 VBA Programmer's Reference" par Paul Kimmel, Stephen Bullen,
John Green, Rob Bovey, Robert Rosenberg (la traduction
française de ce volume existe!)
Lorsque c'est possible, la combinaison de plusieurs ouvrages sur le sujet
enrichi l'apprentissage. À part des ouvrages cités, je
suis sûr qu'il y en a beaucoup d'autres!. Il s'agit de bouquiner un peu
pour trouver la perle rare qui convient à son niveau de
connaissance.
Salutations!
"fred" a écrit dans le message de news:
433a7033$0$18081$
OK je viens de retester...la macro est correcte effectivement...En fait la
valeur de la ColB doit être strictement égale à la valeur de la ColC...là
était le problème...car il y avait des espaces en fin de cellules!
J'ai dû rajouter ceci avant de commencer la boucle
For Each Cellule In ActiveSheet.UsedRange
Cellule.Value = RTrim(Cellule.Value)
Next
Y'a t-il un bon livre pédagogique pour mettre en place des macros de ce
style et en général (qui explique pas à pas détaillé...) car j'aimerais
avancé???
Merci beaucoup pour ton aide!
"michdenis" a écrit dans le message de news:Bonjour Fred,
Avec la macro proposée, tu dois adapter le nom de la feuille où sont tes
données :
Dans mon exemple, cette feuille est : "Feuil1"
Est-ce que tes données sont en colonne B et C ?
Est-ce qu'il y a des lignes où la valeur de la colonne b = la valeur de
la
colonne c ?
Cette procédure devrait fonctionner correctement !
'---------------------------------------
Sub Test()
Dim ColB As Range, ColC As Range
Dim A As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à déterminer
DerLig = .Range("B:C").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set ColB = .Range("b1:b" & DerLig)
Set ColC = .Range("C1.C" & DerLig)
End With
For A = 1 To DerLig
If ColB(A) = ColC(A) Then
ColB(A).Cut ColB(A).Offset(1, -1)
ColC(A).ClearContents
End If
Next
Set ColB = Nothing: Set ColC = Nothing
End Sub
'---------------------------------------
Salutations!