OVH Cloud OVH Cloud

Boucle et traitement conditionnel dans la boucle

5 réponses
Avatar
Pierre
Bonjour,

Introduction :
----------------
En cherchant j'arriverai sans doute à resoudre mon problème, mais si
quelqu'un me donne un coup de main ça devrait allé beaucoup plus vite.

Ma question :
-----------------

Je souhaite écrire une macro qui parcoure la colonne C, de la ligne 1
jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE" alors j'écris
"CARTE" dans la cellule correspondante de la colonne B .

Donc une boucle, avec dans cette boucle un traitement conditionnel.

Merci d'avance.

Pierre

5 réponses

Avatar
chrisn
"Pierre" a écrit dans le message de news:

Je souhaite écrire une macro qui parcoure la colonne C, de la
ligne 1

jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE"


Où se trouve "CARTE" ?
Pas dans la cellule vide, je suppose.

--
chrisn
mettre le bon fai, libertysurf pour me répondre

Avatar
Jacquouille
Bonsoir
Peut-être quelque chose comme cela ?
C'est approximatif car je suis encore en guerre contre le Grand Breton
---------------
Sub carte()
lastcell = Range("c65536").End(xlUp).Address
Set Maplage = Range("c1", lastcell)
For Each c In Maplage
If left(c,5) = "carte" Then
c.offset(0,-1)= "carte"
End If
end sub
---------------
testé sur xl2000, garanti 3 ans ou 100.000 fois, mais sans remboursement.
Bonne chance
--
Jacquouille conseille : http://www.excelabo.net


"Pierre" a écrit dans le message news:
4023f1b0$0$28666$
Bonjour,

Introduction :
----------------
En cherchant j'arriverai sans doute à resoudre mon problème, mais si
quelqu'un me donne un coup de main ça devrait allé beaucoup plus vite.

Ma question :
-----------------

Je souhaite écrire une macro qui parcoure la colonne C, de la ligne 1
jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE" alors j'écris
"CARTE" dans la cellule correspondante de la colonne B .

Donc une boucle, avec dans cette boucle un traitement conditionnel.

Merci d'avance.

Pierre





Avatar
Pierre
"Pierre" a écrit dans le message de
news:4023f1b0$0$28666$
Bonjour,

Introduction :
----------------
En cherchant j'arriverai sans doute à resoudre mon problème, mais si
quelqu'un me donne un coup de main ça devrait allé beaucoup plus vite.

Ma question :
-----------------

Je souhaite écrire une macro qui parcoure la colonne C, de la ligne 1
jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE" alors j'écris
"CARTE" dans la cellule correspondante de la colonne B .

Donc une boucle, avec dans cette boucle un traitement conditionnel.

Merci d'avance.

Pierre




En cherchant j'ai trouvé ça :

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 06/02/2004 par pierre
'
rwIndex = 1

Do While Cells(rwIndex, 3) <> ""
If Cells(rwIndex, 3).Value = "CARTE" Then Cells(rwIndex, 2).Value "CARTE"
rwIndex = rwIndex + 1
Loop

'
End Sub


Pierre

Avatar
ChrisV
Bonjour Pierre,

Ton premier message précisait:
"Si dans la cellule parcourue le premier mot est "CARTE..."

Cela laisse supposer que le contenu de la cellule est composé de 1 ou
plusieurs mots...
Si tu désires néanmoins inclure les cellules contenant par ex. "CARTE à
puce"

Sub zaza()
For i = 1 To [C1].End(xlDown).Row
If Cells(i, 3) Like "CARTE*" Then Cells(i, 2) = "CARTE"
Next i
End Sub

D'autre part, tu ne précises pas si la procédure doit être sensible ou non à
la casse des caractères...
Si tu souhaites également que "carte mère" par ex. soit inclue dans la
recherche...

Sub zaza()
For i = 1 To [C1].End(xlDown).Row
If UCase(Cells(i, 3)) Like "CARTE*" Then Cells(i, 2) = "CARTE"
Next i
End Sub


ChrisV


"Pierre" a écrit dans le message de news:
40240862$0$28655$

"Pierre" a écrit dans le message de
news:4023f1b0$0$28666$
Bonjour,

Introduction :
----------------
En cherchant j'arriverai sans doute à resoudre mon problème, mais si
quelqu'un me donne un coup de main ça devrait allé beaucoup plus vite.

Ma question :
-----------------

Je souhaite écrire une macro qui parcoure la colonne C, de la ligne 1
jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE" alors j'écris
"CARTE" dans la cellule correspondante de la colonne B .

Donc une boucle, avec dans cette boucle un traitement conditionnel.

Merci d'avance.

Pierre




En cherchant j'ai trouvé ça :

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 06/02/2004 par pierre
'
rwIndex = 1

Do While Cells(rwIndex, 3) <> ""
If Cells(rwIndex, 3).Value = "CARTE" Then Cells(rwIndex, 2).Value > "CARTE"
rwIndex = rwIndex + 1
Loop

'
End Sub


Pierre








Avatar
Jacquouille
Salut ChrisV
Le chienlit de macro en Grand Breton que j'ai proposé est-il "politiquement
correct" ?
Afin de ne pas surcharger la noble assemblée, j'aimerais avoir tes critiques
, mais en BAL.
Merci et bon WE

--
Jacquouille conseille : http://www.excelabo.net


"ChrisV" a écrit dans le message news:

Bonjour Pierre,

Ton premier message précisait:
"Si dans la cellule parcourue le premier mot est "CARTE..."

Cela laisse supposer que le contenu de la cellule est composé de 1 ou
plusieurs mots...
Si tu désires néanmoins inclure les cellules contenant par ex. "CARTE à
puce"

Sub zaza()
For i = 1 To [C1].End(xlDown).Row
If Cells(i, 3) Like "CARTE*" Then Cells(i, 2) = "CARTE"
Next i
End Sub

D'autre part, tu ne précises pas si la procédure doit être sensible ou non
à

la casse des caractères...
Si tu souhaites également que "carte mère" par ex. soit inclue dans la
recherche...

Sub zaza()
For i = 1 To [C1].End(xlDown).Row
If UCase(Cells(i, 3)) Like "CARTE*" Then Cells(i, 2) = "CARTE"
Next i
End Sub


ChrisV


"Pierre" a écrit dans le message de news:
40240862$0$28655$

"Pierre" a écrit dans le message de
news:4023f1b0$0$28666$
Bonjour,

Introduction :
----------------
En cherchant j'arriverai sans doute à resoudre mon problème, mais si
quelqu'un me donne un coup de main ça devrait allé beaucoup plus vite.

Ma question :
-----------------

Je souhaite écrire une macro qui parcoure la colonne C, de la ligne 1
jusqu'à la première cellule vide.
Si dans la cellule parcourue le premier mot est "CARTE" alors j'écris
"CARTE" dans la cellule correspondante de la colonne B .

Donc une boucle, avec dans cette boucle un traitement conditionnel.

Merci d'avance.

Pierre




En cherchant j'ai trouvé ça :

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 06/02/2004 par pierre
'
rwIndex = 1

Do While Cells(rwIndex, 3) <> ""
If Cells(rwIndex, 3).Value = "CARTE" Then Cells(rwIndex, 2).Value > > "CARTE"
rwIndex = rwIndex + 1
Loop

'
End Sub


Pierre