OVH Cloud OVH Cloud

Identifier une cellule

3 réponses
Avatar
ced
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+

3 réponses

Avatar
isabelle
bonjour ced,

=SI(ET(B1<>0;NB.SI(A:A;A1)>1;SOMMEPROD(($A$1:$A$3¡)*($D$1:$D$3="VE"))>=1);"VE";"")

isabelle


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+


Avatar
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+




Avatar
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