Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

addition decalage

8 réponses
Avatar
MANU
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu

8 réponses

Avatar
MichD
Bonjour,

Essaie ceci :
à chaque fois que la procédure rencontre le mot total dans la colonne A:A
Elle écrit dans la colonne (7 à droite de A) la somme des colonnes 8 et 9
de la même ligne.
Nom de la feuille à adapter
'---------------------------------------
Sub test()
Dim Rg As Range, Trouve As Range,Adr as String
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

With Rg
Set Trouve = .Find("total", , xlValues, xlWhole)
If Not Trouve Is Nothing Then
adr = Trouve.Address
Do
Trouve.Offset(, 7) = Application.Sum(Trouve.Offset(, 8).Resize(, 2))
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = adr
End If
End With
End Sub
'---------------------------------------


MichD
--------------------------------------------
"MANU" a écrit dans le message de groupe de discussion : in6vh9$4g9$

Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu
Avatar
MichD
Si c'est la formule que tu veux avoir dans la colonne au lieu de la somme :

'_________________________________
Sub test()
Dim Rg As Range, Trouve As Range, Adr As String
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

With Rg
Set Trouve = .Find("total", , xlValues, xlWhole)
If Not Trouve Is Nothing Then
Adr = Trouve.Address
Do
x = "=Sum(" & Trouve.Offset(, 8).Resize(, 2).Address & ")"
Trouve.Offset(, 7).Formula = "=Sum(" & Trouve.Offset(, 8).Resize(, 2).Address & ")"
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = Adr
End If
End With
End Sub
'_________________________________



MichD
--------------------------------------------
"MichD" a écrit dans le message de groupe de discussion : in73nh$drl$

Bonjour,

Essaie ceci :
à chaque fois que la procédure rencontre le mot total dans la colonne A:A
Elle écrit dans la colonne (7 à droite de A) la somme des colonnes 8 et 9
de la même ligne.
Nom de la feuille à adapter
'---------------------------------------
Sub test()
Dim Rg As Range, Trouve As Range,Adr as String
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

With Rg
Set Trouve = .Find("total", , xlValues, xlWhole)
If Not Trouve Is Nothing Then
adr = Trouve.Address
Do
Trouve.Offset(, 7) = Application.Sum(Trouve.Offset(, 8).Resize(, 2))
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = adr
End If
End With
End Sub
'---------------------------------------


MichD
--------------------------------------------
"MANU" a écrit dans le message de groupe de discussion : in6vh9$4g9$

Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu
Avatar
isabelle
bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu



Avatar
Jacquouille
Bonsoir
Juste une bête précision
Dans le code d'Isabelle, on a :
If c Like "*total*" Then
Je dois interpréter cela comme " Si C contient *Total*" ou bien si c =
*total*
Ma question: pourquoi like et non = ???
Merci et bonne fin de BBC et bon WE

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7bqd$vp7$

bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour
me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu



Avatar
MichD
Bonjour,

If c Like "*total*" Then

Ceci signifie que pourvu que la cellule contienne "total" que ce soit
"123total152" ou "totaliser", la comparaison est vraie. Cependant,
elle est sensible à la casse. Ceci ne fonctionnerait pas "bToTal125".

Pour rendre la comparaison insensible à la casse, il faut ajouter dans
le haut de module : Option Compare Text et tout tourne correctement.

Avec un signe égalité "=" on ne peut faire cela. Il faut vraiment que les 2
côtés de l'égalité soient identiques, y compris la casse.

Regarde dans l'aide de VBA en plaçant ton curseur sur l'expression "Like" et
en appuyant sur F1 pour d'autres exemples !

MichD
--------------------------------------------
"Jacquouille" a écrit dans le message de groupe de discussion : 4d976351$0$14250$

Bonsoir
Juste une bête précision
Dans le code d'Isabelle, on a :
If c Like "*total*" Then
Je dois interpréter cela comme " Si C contient *Total*" ou bien si c *total*
Ma question: pourquoi like et non = ???
Merci et bonne fin de BBC et bon WE

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7bqd$vp7$

bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour
me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu



Avatar
isabelle
hello Jacques,

Like because ça donne accès à l'utilisation des critères spéciaux suivant

? Tout caractère unique.
* Aucun ou plusieurs caractères.
# Tout chiffre unique (de 0 à 9).
[charlist] Tout caractère unique compris dans l'argument charlist.
[!charlist] Tout caractère unique non compris dans l'argument charlist.

par default c'est Option Compare Binary, alors pour que les caractères
soient comparer ainsi (A=a)
il faut ajouter Option Compare Text dans le haut du module

Option Compare Text
Sub test()
c = "mon total du mois"
If c Like "*Total*" Then MsgBox "C'est égal"
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 13:56, Jacquouille a écrit :
Bonsoir
Juste une bête précision
Dans le code d'Isabelle, on a :
If c Like "*total*" Then
Je dois interpréter cela comme " Si C contient *Total*" ou bien si c
= *total*
Ma question: pourquoi like et non = ???
Merci et bonne fin de BBC et bon WE

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7bqd$vp7$

bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite
pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu






Avatar
Jacquouille
OK
Ce soir, j'étudie Like dans mon Lit.

Bon WE à vous deux et, grand merci



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7r7s$5so$

hello Jacques,

Like because ça donne accès à l'utilisation des critères spéciaux suivant

? Tout caractère unique.
* Aucun ou plusieurs caractères.
# Tout chiffre unique (de 0 à 9).
[charlist] Tout caractère unique compris dans l'argument charlist.
[!charlist] Tout caractère unique non compris dans l'argument charlist.

par default c'est Option Compare Binary, alors pour que les caractères
soient comparer ainsi (A=a)
il faut ajouter Option Compare Text dans le haut du module

Option Compare Text
Sub test()
c = "mon total du mois"
If c Like "*Total*" Then MsgBox "C'est égal"
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 13:56, Jacquouille a écrit :
Bonsoir
Juste une bête précision
Dans le code d'Isabelle, on a :
If c Like "*total*" Then
Je dois interpréter cela comme " Si C contient *Total*" ou bien si c =
*total*
Ma question: pourquoi like et non = ???
Merci et bonne fin de BBC et bon WE

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7bqd$vp7$

bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite pour
me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu






Avatar
Manu
Merci encore avec un grand merci aux explications additives, ca aide !

Manu

"Jacquouille" a écrit dans le message de news:
4d9774b3$0$14250$
OK
Ce soir, j'étudie Like dans mon Lit.

Bon WE à vous deux et, grand merci



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7r7s$5so$

hello Jacques,

Like because ça donne accès à l'utilisation des critères spéciaux suivant

? Tout caractère unique.
* Aucun ou plusieurs caractères.
# Tout chiffre unique (de 0 à 9).
[charlist] Tout caractère unique compris dans l'argument charlist.
[!charlist] Tout caractère unique non compris dans l'argument charlist.

par default c'est Option Compare Binary, alors pour que les caractères
soient comparer ainsi (A=a)
il faut ajouter Option Compare Text dans le haut du module

Option Compare Text
Sub test()
c = "mon total du mois"
If c Like "*Total*" Then MsgBox "C'est égal"
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 13:56, Jacquouille a écrit :
Bonsoir
Juste une bête précision
Dans le code d'Isabelle, on a :
If c Like "*total*" Then
Je dois interpréter cela comme " Si C contient *Total*" ou bien si c =
*total*
Ma question: pourquoi like et non = ???
Merci et bonne fin de BBC et bon WE

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
in7bqd$vp7$

bonjour Manu,

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address).FormulaR1C1 = "=RC[-2]+RC[-1]"
Range(c.Address) = ""
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-02 06:58, MANU a écrit :
Bonjour,

Je reprend le code d'Isabelle pour qu'à chaque fois que je vois le mot
total dans la colonne A qu'il se decale de 7 cellules vers la droite
pour me
faire un addition des 2 cellules qui se trouveront sur ma gauche

Sub Macro1()
Dim c As Range
For Each c In Range("A1:A"& Range("A65536").End(xlUp).Row)
If c Like "*total*" Then
Range(c.Offset(, 7).Address) = c
Range(c.Address) = ""
c= ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
Next
End Sub

Est ce que je suis loin ?

Merci

Manu