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

Macro pour renseigner en fonction de critères

8 réponses
Avatar
hugo2009
Bonjour,
ColA ColB
BTA1 10
BTA1 10
BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
macro qui me permettent :en esperant faire simple si la valeur est egale à
BTA1 dans ColA alors
Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo

8 réponses

Avatar
isabelle
bonjour Hugo,

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
Range("B2") = 10
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

hugo2009 a écrit :
Bonjour,
ColA ColB
BTA1 10
BTA1 10
BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
macro qui me permettent :en esperant faire simple si la valeur est egale à
BTA1 dans ColA alors
Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo





Avatar
Philippe.R
Bonjour,
Sans macro, en colonne B (sous réserve que la valeur en A ne s'incrémente
pas au delà de 9) :
=9+DROITE(A2;1)
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"hugo2009" a écrit dans le message de
news:
Bonjour,
ColA ColB
BTA1 10
BTA1 10
BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver
une
macro qui me permettent :en esperant faire simple si la valeur est egale
à
BTA1 dans ColA alors
Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à
BTA2
dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre ,je
pensais
trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo




Avatar
hugo2009
Bonjour,
Merci Isabelle pour votre macro qui m'a été d'une aide precieuse,je me suis
permis de faire un petit changement et cela marche à la perfection
voir ci-dessous
Une derniere solicitation ,si dans la colonne B je souhaite afficher L'heure
au format 1050 (pour 10 heures 50) et l'incrementer de 10 Minutes
Avez vous une petite idée?
Merci d'avance
Hugo
BTA1 10 50
BTA1 10 50
BTA2 11 00
BTA3 1110
BTA3 1110

Sub Macro1()
X = Range("A1")
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If c.Value <> X Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
X = c.Value
Next
end sub

"isabelle" a écrit :

bonjour Hugo,

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
Range("B2") = 10
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

hugo2009 a écrit :
> Bonjour,
> ColA ColB
> BTA1 10
> BTA1 10
> BTA2 11
> BTA3 12
> BTA3 12
> A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
> macro qui me permettent :en esperant faire simple si la valeur est egale à
> BTA1 dans ColA alors
> Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
> exemple
> valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
> dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
> Col2 (BTA3 =>13)
> Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
> trouver le code magique mais à chaque fois cela plante
> Encore merci si vous pouvez m'aider
> Cordialement
> Hugo
>
>
>



Avatar
isabelle
bonjour Hugo,

sur cette ligne

c.Offset(, 1) = c.Offset(-1, 1) + 1

au lieu d'ajouter + 1
tu ajoutes + (10 / 60 / 24)

isabelle

hugo2009 a écrit :
Bonjour,
Merci Isabelle pour votre macro qui m'a été d'une aide precieuse,je me suis
permis de faire un petit changement et cela marche à la perfection
voir ci-dessous
Une derniere solicitation ,si dans la colonne B je souhaite afficher L'heure
au format 1050 (pour 10 heures 50) et l'incrementer de 10 Minutes
Avez vous une petite idée?
Merci d'avance
Hugo
BTA1 10 50
BTA1 10 50
BTA2 11 00
BTA3 1110
BTA3 1110

Sub Macro1()
X = Range("A1")
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If c.Value <> X Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
X = c.Value
Next
end sub

"isabelle" a écrit :


bonjour Hugo,

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
Range("B2") = 10
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

hugo2009 a écrit :

Bonjour,
ColA ColB
BTA1 10
BTA1 10
BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
macro qui me permettent :en esperant faire simple si la valeur est egale à
BTA1 dans ColA alors
Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo










Avatar
hugo2009
rebonjour Isabelle,

Cela ne marche pas,mais je continue à chercher Merci quand même
Hugo

"isabelle" a écrit :

bonjour Hugo,

sur cette ligne

c.Offset(, 1) = c.Offset(-1, 1) + 1

au lieu d'ajouter + 1
tu ajoutes + (10 / 60 / 24)

isabelle

hugo2009 a écrit :
> Bonjour,
> Merci Isabelle pour votre macro qui m'a été d'une aide precieuse,je me suis
> permis de faire un petit changement et cela marche à la perfection
> voir ci-dessous
> Une derniere solicitation ,si dans la colonne B je souhaite afficher L'heure
> au format 1050 (pour 10 heures 50) et l'incrementer de 10 Minutes
> Avez vous une petite idée?
> Merci d'avance
> Hugo
> BTA1 10 50
> BTA1 10 50
> BTA2 11 00
> BTA3 1110
> BTA3 1110
>
> Sub Macro1()
> X = Range("A1")
> For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
> If c.Value <> X Then
> c.Offset(, 1) = c.Offset(-1, 1) + 1
> Else
> c.Offset(, 1) = c.Offset(-1, 1)
> End If
> X = c.Value
> Next
> end sub
>
> "isabelle" a écrit :
>
>
>> bonjour Hugo,
>>
>> Sub Macro1()
>> x = Val(Application.Substitute(Range("A2"), "BTA", ""))
>> Range("B2") = 10
>> For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
>> If Val(Application.Substitute(c, "BTA", "")) > x Then
>> c.Offset(, 1) = c.Offset(-1, 1) + 1
>> Else
>> c.Offset(, 1) = c.Offset(-1, 1)
>> End If
>> x = Val(Application.Substitute(c, "BTA", ""))
>> Next
>> End Sub
>>
>> isabelle
>>
>> hugo2009 a écrit :
>>
>>> Bonjour,
>>> ColA ColB
>>> BTA1 10
>>> BTA1 10
>>> BTA2 11
>>> BTA3 12
>>> BTA3 12
>>> A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
>>> macro qui me permettent :en esperant faire simple si la valeur est egale à
>>> BTA1 dans ColA alors
>>> Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
>>> exemple
>>> valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
>>> dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
>>> Col2 (BTA3 =>13)
>>> Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
>>> trouver le code magique mais à chaque fois cela plante
>>> Encore merci si vous pouvez m'aider
>>> Cordialement
>>> Hugo
>>>
>>>
>>>
>>>



Avatar
isabelle
bonjour Hugo,

la valeur de la celulle B1 est bien au format hh:mm ?

isabelle

hugo2009 a écrit :
rebonjour Isabelle,

Cela ne marche pas,mais je continue à chercher Merci quand même
Hugo

"isabelle" a écrit :


bonjour Hugo,

sur cette ligne

c.Offset(, 1) = c.Offset(-1, 1) + 1

au lieu d'ajouter + 1
tu ajoutes + (10 / 60 / 24)

isabelle

hugo2009 a écrit :

Bonjour,
Merci Isabelle pour votre macro qui m'a été d'une aide precieuse,je me suis
permis de faire un petit changement et cela marche à la perfection
voir ci-dessous
Une derniere solicitation ,si dans la colonne B je souhaite afficher L'heure
au format 1050 (pour 10 heures 50) et l'incrementer de 10 Minutes
Avez vous une petite idée?
Merci d'avance
Hugo
BTA1 10 50
BTA1 10 50
BTA2 11 00
BTA3 1110
BTA3 1110

Sub Macro1()
X = Range("A1")
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If c.Value <> X Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
X = c.Value
Next
end sub

"isabelle" a écrit :



bonjour Hugo,

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
Range("B2") = 10
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

hugo2009 a écrit :


Bonjour,
ColA ColB
BTA1 10
BTA1 10
BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de trouver une
macro qui me permettent :en esperant faire simple si la valeur est egale à
BTA1 dans ColA alors
Valeur de la Col vaut 10 sinon incrementer la valeur de la Col2 ,dans mon
exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est egale à BTA2
dans ColA alors Valeur de la Col vaut 12 sinon incrementer la valeur de la
Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre ,je pensais
trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo















Avatar
isabelle
sinon :

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
If Val(Right(CStr(c.Offset(-1, 1)), 2)) = 50 Then
c.Offset(, 1) = c.Offset(-1, 1) + 50
Else: c.Offset(, 1) = c.Offset(-1, 1) + 10
End If
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

isabelle a écrit :
bonjour Hugo,

la valeur de la celulle B1 est bien au format hh:mm ?

isabelle

hugo2009 a écrit :
rebonjour Isabelle,

Cela ne marche pas,mais je continue à chercher Merci quand même
Hugo

"isabelle" a écrit :


bonjour Hugo,

sur cette ligne

c.Offset(, 1) = c.Offset(-1, 1) + 1

au lieu d'ajouter + 1
tu ajoutes + (10 / 60 / 24)

isabelle

hugo2009 a écrit :

Bonjour, Merci Isabelle pour votre macro qui m'a été d'une aide
precieuse,je me suis permis de faire un petit changement et cela
marche à la perfection
voir ci-dessous
Une derniere solicitation ,si dans la colonne B je souhaite
afficher L'heure au format 1050 (pour 10 heures 50) et
l'incrementer de 10 Minutes Avez vous une petite idée?
Merci d'avance Hugo
BTA1 10 50 BTA1 10 50 BTA2 11 00
BTA3 1110 BTA3 1110

Sub Macro1()
X = Range("A1")
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If c.Value <> X Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
X = c.Value
Next
end sub

"isabelle" a écrit :


bonjour Hugo,

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
Range("B2") = 10
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
c.Offset(, 1) = c.Offset(-1, 1) + 1
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

hugo2009 a écrit :

Bonjour,
ColA ColB
BTA1 10 BTA1 10 BTA2 11
BTA3 12
BTA3 12
A partir de l'exemple ci dessus,jai essayé mais sans reussite de
trouver une macro qui me permettent :en esperant faire simple si
la valeur est egale à BTA1 dans ColA alors Valeur de la Col vaut
10 sinon incrementer la valeur de la Col2 ,dans mon exemple
valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est
egale à BTA2 dans ColA alors Valeur de la Col vaut 12 sinon
incrementer la valeur de la Col2 (BTA3 =>13)
Si vous avez une petite idée ,merci d'avance de me la soumettre
,je pensais trouver le code magique mais à chaque fois cela plante
Encore merci si vous pouvez m'aider
Cordialement
Hugo















Avatar
hugo2009
Isabelle,
Bravo quelle Talent ,c'est parfait ,encore Merci
Cordialement
Hugo


"isabelle" a écrit :

sinon :

Sub Macro1()
x = Val(Application.Substitute(Range("A2"), "BTA", ""))
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Val(Application.Substitute(c, "BTA", "")) > x Then
If Val(Right(CStr(c.Offset(-1, 1)), 2)) = 50 Then
c.Offset(, 1) = c.Offset(-1, 1) + 50
Else: c.Offset(, 1) = c.Offset(-1, 1) + 10
End If
Else
c.Offset(, 1) = c.Offset(-1, 1)
End If
x = Val(Application.Substitute(c, "BTA", ""))
Next
End Sub

isabelle

isabelle a écrit :
> bonjour Hugo,
>
> la valeur de la celulle B1 est bien au format hh:mm ?
>
> isabelle
>
> hugo2009 a écrit :
>> rebonjour Isabelle,
>>
>> Cela ne marche pas,mais je continue à chercher Merci quand même
>> Hugo
>>
>> "isabelle" a écrit :
>>
>>
>>> bonjour Hugo,
>>>
>>> sur cette ligne
>>>
>>> c.Offset(, 1) = c.Offset(-1, 1) + 1
>>>
>>> au lieu d'ajouter + 1
>>> tu ajoutes + (10 / 60 / 24)
>>>
>>> isabelle
>>>
>>> hugo2009 a écrit :
>>>
>>>> Bonjour, Merci Isabelle pour votre macro qui m'a été d'une aide
>>>> precieuse,je me suis permis de faire un petit changement et cela
>>>> marche à la perfection
>>>> voir ci-dessous
>>>> Une derniere solicitation ,si dans la colonne B je souhaite
>>>> afficher L'heure au format 1050 (pour 10 heures 50) et
>>>> l'incrementer de 10 Minutes Avez vous une petite idée?
>>>> Merci d'avance Hugo
>>>> BTA1 10 50 BTA1 10 50 BTA2 11 00
>>>> BTA3 1110 BTA3 1110
>>>>
>>>> Sub Macro1()
>>>> X = Range("A1")
>>>> For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
>>>> If c.Value <> X Then
>>>> c.Offset(, 1) = c.Offset(-1, 1) + 1
>>>> Else
>>>> c.Offset(, 1) = c.Offset(-1, 1)
>>>> End If
>>>> X = c.Value
>>>> Next
>>>> end sub
>>>>
>>>> "isabelle" a écrit :
>>>>
>>>>
>>>>> bonjour Hugo,
>>>>>
>>>>> Sub Macro1()
>>>>> x = Val(Application.Substitute(Range("A2"), "BTA", ""))
>>>>> Range("B2") = 10
>>>>> For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row)
>>>>> If Val(Application.Substitute(c, "BTA", "")) > x Then
>>>>> c.Offset(, 1) = c.Offset(-1, 1) + 1
>>>>> Else
>>>>> c.Offset(, 1) = c.Offset(-1, 1)
>>>>> End If
>>>>> x = Val(Application.Substitute(c, "BTA", ""))
>>>>> Next
>>>>> End Sub
>>>>>
>>>>> isabelle
>>>>>
>>>>> hugo2009 a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>> ColA ColB
>>>>>> BTA1 10 BTA1 10 BTA2 11
>>>>>> BTA3 12
>>>>>> BTA3 12
>>>>>> A partir de l'exemple ci dessus,jai essayé mais sans reussite de
>>>>>> trouver une macro qui me permettent :en esperant faire simple si
>>>>>> la valeur est egale à BTA1 dans ColA alors Valeur de la Col vaut
>>>>>> 10 sinon incrementer la valeur de la Col2 ,dans mon exemple
>>>>>> valeur de Col2 pour BTA2 egale 11,ensuite si si la valeur est
>>>>>> egale à BTA2 dans ColA alors Valeur de la Col vaut 12 sinon
>>>>>> incrementer la valeur de la Col2 (BTA3 =>13)
>>>>>> Si vous avez une petite idée ,merci d'avance de me la soumettre
>>>>>> ,je pensais trouver le code magique mais à chaque fois cela plante
>>>>>> Encore merci si vous pouvez m'aider
>>>>>> Cordialement
>>>>>> Hugo
>>>>>>
>>>>>>
>>>>>>