addition decalage

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23252961
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
MichD
Le #23253021
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
isabelle
Le #23253161
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



Jacquouille
Le #23253711
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



MichD
Le #23253821
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



isabelle
Le #23253891
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






Jacquouille
Le #23253961
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






Manu
Le #23254531
Merci encore avec un grand merci aux explications additives, ca aide !

Manu

"Jacquouille" 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









Publicité
Poster une réponse
Anonyme