Boucle - condition

Bonjour,

Je chercher à fair eune macro qui dit que si la cellule U2 = prospect, alors il faut aller écrire un texte dans la cellule G2.

Pour cette partie tout va bien!

Par contre je n'arrive pas à faire une boucle, c'est à dire à faire que la macro aille ensuite voir U3 et G3 et ainsi de suite jusqu'`à la fin du document (qui n'a pas toujours le même nombre de lignes.

Mon document est en pièce jointe.

J'aimerai surtout avoir une explication, j'écume les forums et tutos depuis ce matin pour comprendre comment fonctionnent les boucles et je ne comprends pas...

Merci!

Bonjour

Un essai. Te convient-il ?

Bye !

Bonjour,

Ton fichier est vide ...

A titre d'exemple ...

Sub TestBoucle()
Dim rcl As Range
Dim plage As Range
Dim x As Long

x = Feuil1.Range("U65536").End(xlUp).Row
Set plage = Feuil1.Range("U2:U" & x)

    For Each rcl In plage
        rcl.Offset(0, -10) = rcl
    Next rcl
End Sub

Merci pour vos réponses!

James007, il y a des morceaux que je ne comprends pas dans ton code, et je dois pouvoir l'expliquer après....

GMB j'ai compris ce que tu as fait, j'ai essayé de mettre une autre condition mais ça ne fonctionne pas. Une idée de pourquoi?

Merci beaucoup

Re,

De rien ...

1. Que donne le test de la macro ...???

2. Qu'est-ce-que tu comprends et qu'est-ce-que tu ne comprends pas ...???

Je ne sais pas ou mettre mes conditions if et elseif

Je ne sais pas ce que ça veut dire x = Feuil1.Range("U65536") (pourquoi U65536?)

Je ne comprends pas ce que à quoi sert la variable rcl.

Je suis débutante, donc il est "normal" que j'ai 12000 questions, c'est pas une remise en doute hein

Merci!

Re,

Je vais essayer d'être le plus clair possible ...

1. L'instruction concernant x permet d'obtenir le dernier numéro de ligne remplie ... dans la colonne U

2. La variable rcl ( ou tout autre nom ) permet de définir chaque cellule

3. La plage permet de définir l'ensemnle des cellules à analyse dans la Colonne U

4. La Boucle For Each ... Next permet justement de tester chaue cellule l'une après l'autre ...

5. Tes conditions If ... Then ... End If doivent être insérées au milieu de la boucle ...

Ok je comprends un peu mieux merci

Voilà ce que j'ai fait avec mes petites connaissances (voir fichier joint)

La seule chose qui me manque c'est de pouvoir aller à la fin de ma colonne U, ce que j'imagine toi tu as écrit comme ça :

Feuil1.Range("U65536").End(xlUp).Row

Est-ce que tu vois comment je pourrais insérer ça dans mon code à moi?

Est-ce que d'après toi c'est bonne façon d'y arriver?

Merciiiiiiii

Re,

Toutes mes Félicitations ...

Option Explicit

Sub Prospect()
Dim x As Long
Dim derligne As Long

derligne = Feuil1.Range("U65536").End(xlUp).Row

    For x = 2 To derligne
        If Cells(x, 21) = "Prospect" Then
            Cells(x, 7) = "Key Audit Prospect, if you need more information, please contact directly the partner in charge."
        ElseIf Cells(x, 21) = "Relation d'affaires" Then
            Cells(x, 7) = "Business relationship blablabla"
        End If
    Next x
End Sub

Merciiiiii!!!!

Merci pour ta patience et ton partage de connaissances!

Bonne soirée!

Re,

Merci pour tes très gentils remerciements ...

Bon, finalement me revoilà

Je dois intégrer ce petit morceau de code à un morceau déjà existant.

Quand j'enregistre le tout dans le fichier (macro qui appartient au fichier donc). ça fonctionne.

Par contre, si je copie-colle ce code dans un nouveau module de mon fichier de macro personnel, le nouveau code que j'ai ajouté ne fonctionne plus.

Une idée de pourquoi?

Merci encore et bonne journée!

Bonjour,

Peux-tu prendre un petit peu de temps pour comprendre ta macro ....???

Car, cela fait plusieurs fois que je te corrige les mêmes erreurs ...

Je ne comprends pas ce que ça change, quand je copie-colle tout ton code dans un module de mon fichier de macro personnelles, la partie que je viens de faire (avec les for et les if) ne fonctionne toujours pas.

Pour le reste, à quoi ça sert de remettre la variable après le Next?

Et c'est quoi la différence entre as long et as integer?

À quoi ça sert aussi le option explicit?

Et pourquoi c'est deux macros différentes, deux Sub et end sub, Est-ce que c'est supposé se faire l'un après l'autre automatiquement si c'est dans le même module?

Merci merci merci pour ton temps

Re,

Je suis désolé de ne pas pouvoir t'apprendre tout Excel ... en 5 minutes ...

Pour le premier point ... tu copies " dans un module de mon fichier de macro personnelles " ...

Peux-tu préciser ... car cela peut signifier plusieurs choses très différentes ...

Ah ah ah désolée je voudrai bien que tout rentre d'un coup dans ma tête en effet!

Je prends ton code dans Visual Basic, je fais ctrl+c, j'ouvre un module dans VBSProject(Presonnal.XLSB) et je fais ctrl+v.

Faut-il procéder autrement?

Re,

Je suppose que lorque tu écris ... Presonnal.XLSB ... tu veux dire Personnal.XLSB ...

Si tu as déjà plusieurs macros génériques ... c'est que tu dois déjà connaitre les bonnes raisons pour stocker certaines macros dans Personnal.XLSB

Est-ce-que tu vas devoir exécuter cette macro sur beaucoup de fichiers différents ... avec cette même structure ...???

Si tu te trouves dans ce cas ... tu as intérêt à remplacer toutes les instructions liées à une feuille par ActiveSheet ...

En fait cette macro va être utilisée sur par plusieurs personnes, et sur un fichier qui est extrait d'un logiciel environ 20 fois par jour.

Donc oui je dois absolument passer par Personnal.XLSB....

Je vais essayer ça alors merci

Re,

Fais d'abord ce test ...

Et lorsque cette question sera résolue ... il sera toujours temps d'aborder toutes tes autres interrogations ...

Tout fonctionne, tout est super beau

Merci je suis vraiment contente de ce que j'ai appris.... même s'il en reste encore beaucoup à apprendre

Rechercher des sujets similaires à "boucle condition"