OVH Cloud OVH Cloud

Echec de boucle

6 réponses
Avatar
ManBas
Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la valeur
est "oui", place dans la première cellule vide de la colonne C à partir de
C5, la valeur de la colonne A qui correspond à la ligne de la cellule B
trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+

6 réponses

Avatar
isabelle
bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle


Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la valeur
est "oui", place dans la première cellule vide de la colonne C à partir de
C5, la valeur de la colonne A qui correspond à la ligne de la cellule B
trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+






Avatar
ManBas
Bonjour Isabelle
ça marche pas. Voila ce que ça donne.

Dans mon exemple j'ai mis "oui" en B2, B4 et B11 (je voudrais donc obtenir
A2 en C6, A4 en C7 et A11 en C8).

Avec ce code j'obtiens la valeur de A2 en C1, C2, C3, C4 , puis en C5 la
valeur de A11!
Adieu la valeur de A4, et la contrainte de renvoyer à partir de C5.
????


"isabelle" a écrit dans le message de news:

bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle


Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la
valeur est "oui", place dans la première cellule vide de la colonne C à
partir de C5, la valeur de la colonne A qui correspond à la ligne de la
cellule B trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+







Avatar
isabelle
oups désolé voici la correction.

Sub Macro2()
Dim cellB As Range
Dim x As Integer
x = 0
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C" & 5 + x) = Cells(cellB.Row, 1)
x = x + 1
End If
Next cellB
End Sub

isabelle


Bonjour Isabelle
ça marche pas. Voila ce que ça donne.

Dans mon exemple j'ai mis "oui" en B2, B4 et B11 (je voudrais donc obtenir
A2 en C6, A4 en C7 et A11 en C8).

Avec ce code j'obtiens la valeur de A2 en C1, C2, C3, C4 , puis en C5 la
valeur de A11!
Adieu la valeur de A4, et la contrainte de renvoyer à partir de C5.
????


"isabelle" a écrit dans le message de news:


bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle



Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la
valeur est "oui", place dans la première cellule vide de la colonne C à
partir de C5, la valeur de la colonne A qui correspond à la ligne de la
cellule B trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+











Avatar
ManBas
Ca marche super.
C'est beau.
Mais c'est loin de ce que je sais faire.
Ca fait plusieurs fois que l'on m'aide avec la fonction cells: elle est
simple mais je ne l'ai pas encore intégrée. Il faut que j'y pense plus
souvent.
Par contre je ne comprends pas la progression x pour C& 5+x.
Peux-tu me donner quelques explications?

"isabelle" a écrit dans le message de news:
Or%
oups désolé voici la correction.

Sub Macro2()
Dim cellB As Range
Dim x As Integer
x = 0
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C" & 5 + x) = Cells(cellB.Row, 1)
x = x + 1
End If
Next cellB
End Sub

isabelle


Bonjour Isabelle
ça marche pas. Voila ce que ça donne.

Dans mon exemple j'ai mis "oui" en B2, B4 et B11 (je voudrais donc
obtenir A2 en C6, A4 en C7 et A11 en C8).

Avec ce code j'obtiens la valeur de A2 en C1, C2, C3, C4 , puis en C5 la
valeur de A11!
Adieu la valeur de A4, et la contrainte de renvoyer à partir de C5.
????


"isabelle" a écrit dans le message de news:


bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle



Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la
valeur est "oui", place dans la première cellule vide de la colonne C à
partir de C5, la valeur de la colonne A qui correspond à la ligne de la
cellule B trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+












Avatar
isabelle
au premier tour de la boucle x = 0
si la condition est vrai (If cellB = "oui" Then)
Range("C" & 5 + x) c'est l'adresse Range("C5")
et la valeur de x est incrémenté de 1 ( x = x + 1)
au deuxième tour de la boucle x = 1
donc Range("C" & 5 + x) c'est l'adresse Range("C6")
etc..

isabelle


Ca marche super.
C'est beau.
Mais c'est loin de ce que je sais faire.
Ca fait plusieurs fois que l'on m'aide avec la fonction cells: elle est
simple mais je ne l'ai pas encore intégrée. Il faut que j'y pense plus
souvent.
Par contre je ne comprends pas la progression x pour C& 5+x.
Peux-tu me donner quelques explications?

"isabelle" a écrit dans le message de news:
Or%

oups désolé voici la correction.

Sub Macro2()
Dim cellB As Range
Dim x As Integer
x = 0
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C" & 5 + x) = Cells(cellB.Row, 1)
x = x + 1
End If
Next cellB
End Sub

isabelle



Bonjour Isabelle
ça marche pas. Voila ce que ça donne.

Dans mon exemple j'ai mis "oui" en B2, B4 et B11 (je voudrais donc
obtenir A2 en C6, A4 en C7 et A11 en C8).

Avec ce code j'obtiens la valeur de A2 en C1, C2, C3, C4 , puis en C5 la
valeur de A11!
Adieu la valeur de A4, et la contrainte de renvoyer à partir de C5.
????


"isabelle" a écrit dans le message de news:



bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle




Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la
valeur est "oui", place dans la première cellule vide de la colonne C à
partir de C5, la valeur de la colonne A qui correspond à la ligne de la
cellule B trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir de
C5".
Merci de votre aide.
A+















Avatar
ManBas
Merci beaucoup Isa,
et à bientôt.


...Je progresse, je progresse, je progresse, je progresse, je...

"isabelle" a écrit dans le message de news:
OV$
au premier tour de la boucle x = 0
si la condition est vrai (If cellB = "oui" Then)
Range("C" & 5 + x) c'est l'adresse Range("C5")
et la valeur de x est incrémenté de 1 ( x = x + 1)
au deuxième tour de la boucle x = 1
donc Range("C" & 5 + x) c'est l'adresse Range("C6")
etc..

isabelle


Ca marche super.
C'est beau.
Mais c'est loin de ce que je sais faire.
Ca fait plusieurs fois que l'on m'aide avec la fonction cells: elle est
simple mais je ne l'ai pas encore intégrée. Il faut que j'y pense plus
souvent.
Par contre je ne comprends pas la progression x pour C& 5+x.
Peux-tu me donner quelques explications?

"isabelle" a écrit dans le message de news:
Or%

oups désolé voici la correction.

Sub Macro2()
Dim cellB As Range
Dim x As Integer
x = 0
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C" & 5 + x) = Cells(cellB.Row, 1)
x = x + 1
End If
Next cellB
End Sub

isabelle



Bonjour Isabelle
ça marche pas. Voila ce que ça donne.

Dans mon exemple j'ai mis "oui" en B2, B4 et B11 (je voudrais donc
obtenir A2 en C6, A4 en C7 et A11 en C8).

Avec ce code j'obtiens la valeur de A2 en C1, C2, C3, C4 , puis en C5 la
valeur de A11!
Adieu la valeur de A4, et la contrainte de renvoyer à partir de C5.
????


"isabelle" a écrit dans le message de news:



bonjour ManBas,

Sub Macro1()
Dim cellB As Range
For Each cellB In Range("B2:B" & Range("B65536").End(xlUp).Row)
If cellB = "oui" Then
Range("C5:C" & Range("C65536").End(xlUp).Row) = Cells(cellB.Row, 1)
End If
Next cellB
End Sub

isabelle




Bonjour,
Depuis peu je persévère dans les boucles qui permettent un travail
considérable.
Mais ma linguistique VB est un trop "light" pour conclure.
Je voudrais écrire:
"chaque fois que tu rencontres une cellule dans la colonne B dont la
valeur est "oui", place dans la première cellule vide de la colonne C
à partir de C5, la valeur de la colonne A qui correspond à la ligne de
la cellule B trouvée avec "oui" ".

J'ai écris:
Dim cellB As Range
Dim Yes As String
Dim cellA As String
Dim ligne As Integer
Yes = "oui"
ligneB = ActiveCell.Row
Range("b2:b13").Select
For Each cellB In Selection
If cellB.Value = Yes Then
MsgBox ligneB
cellA = Range("a" & ligneB).Value
Range("c65536").End(xlUp).Offset(1, 0).Value = cellA
End If
Next cellB

...et je n'obtiens à chaque fois que la première des valeurs A, qui se
répéte au fur et à mesure, et je ne parviens pas à déclarer "à partir
de C5".
Merci de votre aide.
A+