Bonjour,
Je vais essayer d'être le plus le clair possible
j'ai 4 colonnes comme suit :
A B C D
1 8 15 AR
2 9 15 DE
3 9 VE
Je veux : si la cellule en C est vide et que la cellule en B et pleine,
rechercher en D s'il existe VE pour une donnée en A identique à celle ou la
première condition était réalisée
Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess()
dim MvTR as string, i as integer
Range("c1").Select
Do
(1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then
MvTR = ActiveCell.Offset(0, -2)
i = 1
Do
i = i + 1
(2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) =
MvTR Then ????????
Else: Activecell.Offset(1).Select
End If
Loop until i = 10
End If
Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2)
est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque
(1) fait aussi partie d'une boucle.
Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne
sais même pas comment nommer mon post (lol)
;-) Ced A+
Bonjour, Je vais essayer d'être le plus le clair possible j'ai 4 colonnes comme suit :
A B C D 1 8 15 AR 2 9 15 DE 3 9 VE Je veux : si la cellule en C est vide et que la cellule en B et pleine, rechercher en D s'il existe VE pour une donnée en A identique à celle ou la première condition était réalisée Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess() dim MvTR as string, i as integer Range("c1").Select Do (1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then MvTR = ActiveCell.Offset(0, -2) i = 1 Do i = i + 1 (2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) > MvTR Then ???????? Else: Activecell.Offset(1).Select End If Loop until i = 10 End If Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2) est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque (1) fait aussi partie d'une boucle. Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne sais même pas comment nommer mon post (lol) ;-) Ced A+
Bonjour,
Je vais essayer d'être le plus le clair possible
j'ai 4 colonnes comme suit :
A B C D
1 8 15 AR
2 9 15 DE
3 9 VE
Je veux : si la cellule en C est vide et que la cellule en B et pleine,
rechercher en D s'il existe VE pour une donnée en A identique à celle ou la
première condition était réalisée
Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess()
dim MvTR as string, i as integer
Range("c1").Select
Do
(1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then
MvTR = ActiveCell.Offset(0, -2)
i = 1
Do
i = i + 1
(2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) > MvTR Then ????????
Else: Activecell.Offset(1).Select
End If
Loop until i = 10
End If
Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2)
est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque
(1) fait aussi partie d'une boucle.
Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne
sais même pas comment nommer mon post (lol)
;-) Ced A+
Bonjour, Je vais essayer d'être le plus le clair possible j'ai 4 colonnes comme suit :
A B C D 1 8 15 AR 2 9 15 DE 3 9 VE Je veux : si la cellule en C est vide et que la cellule en B et pleine, rechercher en D s'il existe VE pour une donnée en A identique à celle ou la première condition était réalisée Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess() dim MvTR as string, i as integer Range("c1").Select Do (1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then MvTR = ActiveCell.Offset(0, -2) i = 1 Do i = i + 1 (2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) > MvTR Then ???????? Else: Activecell.Offset(1).Select End If Loop until i = 10 End If Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2) est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque (1) fait aussi partie d'une boucle. Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne sais même pas comment nommer mon post (lol) ;-) Ced A+
docm
Bonjour ced.
Voici une méthode avec deux For Next imbriqués. Ca me semble plus simple que d'utiliser ActiveCell. Question de goût sans doute.
Sub ttr()
lignes = [a65536].End(xlUp).Row For i = 1 To lignes
'si la cellule en C est vide et que la cellule en B et pleine If Trim(Cells(i, 3)) = "" And Trim(Cells(i, 2)) <> "" Then
'Recherche dans les lignes plus basses For j = i + 1 To lignes
If Cells(j, 1) = Cells(i, 1) And Cells(j, 4) <> "" Then 'La recherche est fructueuse Cells(i, 3) = Cells(j, 4) 'Fin de cette recherche Exit For
End If Next
End If Next End Sub
"ced" wrote in message news:
Bonjour, Je vais essayer d'être le plus le clair possible j'ai 4 colonnes comme suit :
A B C D 1 8 15 AR 2 9 15 DE 3 9 VE Je veux : si la cellule en C est vide et que la cellule en B et pleine, rechercher en D s'il existe VE pour une donnée en A identique à celle ou la
première condition était réalisée Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess() dim MvTR as string, i as integer Range("c1").Select Do (1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then MvTR = ActiveCell.Offset(0, -2) i = 1 Do i = i + 1 (2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) MvTR Then ???????? Else: Activecell.Offset(1).Select End If Loop until i = 10 End If Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2)
est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque
(1) fait aussi partie d'une boucle. Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne sais même pas comment nommer mon post (lol) ;-) Ced A+
Bonjour ced.
Voici une méthode avec deux For Next imbriqués.
Ca me semble plus simple que d'utiliser ActiveCell. Question de goût sans
doute.
Sub ttr()
lignes = [a65536].End(xlUp).Row
For i = 1 To lignes
'si la cellule en C est vide et que la cellule en B et pleine
If Trim(Cells(i, 3)) = "" And Trim(Cells(i, 2)) <> "" Then
'Recherche dans les lignes plus basses
For j = i + 1 To lignes
If Cells(j, 1) = Cells(i, 1) And Cells(j, 4) <> "" Then
'La recherche est fructueuse
Cells(i, 3) = Cells(j, 4)
'Fin de cette recherche
Exit For
End If
Next
End If
Next
End Sub
"ced" <ced1er@numericable.fr> wrote in message
news:ObyHZsftEHA.2664@TK2MSFTNGP12.phx.gbl...
Bonjour,
Je vais essayer d'être le plus le clair possible
j'ai 4 colonnes comme suit :
A B C D
1 8 15 AR
2 9 15 DE
3 9 VE
Je veux : si la cellule en C est vide et que la cellule en B et pleine,
rechercher en D s'il existe VE pour une donnée en A identique à celle ou
la
première condition était réalisée
Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess()
dim MvTR as string, i as integer
Range("c1").Select
Do
(1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then
MvTR = ActiveCell.Offset(0, -2)
i = 1
Do
i = i + 1
(2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2)
MvTR Then ????????
Else: Activecell.Offset(1).Select
End If
Loop until i = 10
End If
Mon problème est que je ne sais pas comment revenir à la cellule C2 si
(2)
est réalisé et sortir de la boucle pour vérifier la cellule suivante
puisque
(1) fait aussi partie d'une boucle.
Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne
sais même pas comment nommer mon post (lol)
;-) Ced A+
Voici une méthode avec deux For Next imbriqués. Ca me semble plus simple que d'utiliser ActiveCell. Question de goût sans doute.
Sub ttr()
lignes = [a65536].End(xlUp).Row For i = 1 To lignes
'si la cellule en C est vide et que la cellule en B et pleine If Trim(Cells(i, 3)) = "" And Trim(Cells(i, 2)) <> "" Then
'Recherche dans les lignes plus basses For j = i + 1 To lignes
If Cells(j, 1) = Cells(i, 1) And Cells(j, 4) <> "" Then 'La recherche est fructueuse Cells(i, 3) = Cells(j, 4) 'Fin de cette recherche Exit For
End If Next
End If Next End Sub
"ced" wrote in message news:
Bonjour, Je vais essayer d'être le plus le clair possible j'ai 4 colonnes comme suit :
A B C D 1 8 15 AR 2 9 15 DE 3 9 VE Je veux : si la cellule en C est vide et que la cellule en B et pleine, rechercher en D s'il existe VE pour une donnée en A identique à celle ou la
première condition était réalisée Donc pour cet exemple, je voudrais voir apparaitre en C2 les lettres VE
Voilà ce que j'ai déjà fait :
sub ess() dim MvTR as string, i as integer Range("c1").Select Do (1)If ActiveCell.Offset(0, -1) <> "" And ActiveCell = "" Then MvTR = ActiveCell.Offset(0, -2) i = 1 Do i = i + 1 (2) If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -2) MvTR Then ???????? Else: Activecell.Offset(1).Select End If Loop until i = 10 End If Mon problème est que je ne sais pas comment revenir à la cellule C2 si (2)
est réalisé et sortir de la boucle pour vérifier la cellule suivante puisque
(1) fait aussi partie d'une boucle. Merci de votre aide, j'espère avoir été suffisament clair, en plus je ne sais même pas comment nommer mon post (lol) ;-) Ced A+
ced
Salut, je me suis creusé la tête aujourd'hui et élaboré le code suivant, si vous avez des suggestions d'améliorations ou des critiques à me fournir, je suis tout ouïe. Merci de votre aide
Sub essai() Dim i As Integer, MvtR As String, P As Integer
Do If ActiveCell = "" And ActiveCell.Offset(0, -1) <> "" Then MvtR = ActiveCell.Offset(0, -3) ActiveCell.Offset(-5).Select i = 0 Do If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -3) = MvtR Then If i < 5 Then P = i + 5 - i ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart ElseIf i = 5 Then P = 0 ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart ElseIf i > 5 Then P = -i + 5 ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart End If End If i = i + 1 ActiveCell.Offset(1).Select Loop Until i = 10 ActiveCell.Offset(-5).Select End If GoTo OnRepart OnRepart: ActiveCell.Offset(1).Select Loop Until ActiveCell = "ced"
End Sub
Salut, je me suis creusé la tête aujourd'hui et élaboré le code suivant, si
vous avez des suggestions d'améliorations ou des critiques à me fournir, je
suis tout ouïe.
Merci de votre aide
Sub essai()
Dim i As Integer, MvtR As String, P As Integer
Do
If ActiveCell = "" And ActiveCell.Offset(0, -1) <> "" Then
MvtR = ActiveCell.Offset(0, -3)
ActiveCell.Offset(-5).Select
i = 0
Do
If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -3) = MvtR
Then
If i < 5 Then
P = i + 5 - i
ActiveCell.Offset(P).Select
ActiveCell.FormulaR1C1 = "VE"
GoTo OnRepart
ElseIf i = 5 Then
P = 0
ActiveCell.Offset(P).Select
ActiveCell.FormulaR1C1 = "VE"
GoTo OnRepart
ElseIf i > 5 Then
P = -i + 5
ActiveCell.Offset(P).Select
ActiveCell.FormulaR1C1 = "VE"
GoTo OnRepart
End If
End If
i = i + 1
ActiveCell.Offset(1).Select
Loop Until i = 10
ActiveCell.Offset(-5).Select
End If
GoTo OnRepart
OnRepart:
ActiveCell.Offset(1).Select
Loop Until ActiveCell = "ced"
Salut, je me suis creusé la tête aujourd'hui et élaboré le code suivant, si vous avez des suggestions d'améliorations ou des critiques à me fournir, je suis tout ouïe. Merci de votre aide
Sub essai() Dim i As Integer, MvtR As String, P As Integer
Do If ActiveCell = "" And ActiveCell.Offset(0, -1) <> "" Then MvtR = ActiveCell.Offset(0, -3) ActiveCell.Offset(-5).Select i = 0 Do If ActiveCell.Offset(0, 1) = "VE" And ActiveCell.Offset(0, -3) = MvtR Then If i < 5 Then P = i + 5 - i ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart ElseIf i = 5 Then P = 0 ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart ElseIf i > 5 Then P = -i + 5 ActiveCell.Offset(P).Select ActiveCell.FormulaR1C1 = "VE" GoTo OnRepart End If End If i = i + 1 ActiveCell.Offset(1).Select Loop Until i = 10 ActiveCell.Offset(-5).Select End If GoTo OnRepart OnRepart: ActiveCell.Offset(1).Select Loop Until ActiveCell = "ced"