OVH Cloud OVH Cloud

Plusieurs conditions

8 réponses
Avatar
Denys
Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value = "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys

8 réponses

Avatar
Daniel
Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB", "BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value = "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys




Avatar
Denys
Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB", "BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value = "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys









Avatar
Daniel
Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB", "BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value =
"QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys











Avatar
Denys
Bonjour Daniel,

Désolé, ça ne fonctionne toujours pas..... Excel ne semble pas reconnaitre
le "array"... Il saute toujours la condition...

Denys


Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB", "BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value =
"QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys
















Avatar
Daniel
Ah ?
Regarde le classeur suivant :
http://cjoint.com/?lwuObuTh0P
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Désolé, ça ne fonctionne toujours pas..... Excel ne semble pas reconnaitre
le "array"... Il saute toujours la condition...

Denys


Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de
news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la
cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value >> >> > "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys


















Avatar
Denys
Bonjour Daniel,

Crois-le ou non....... Excel ne veut absolument rien savoir....... même
lorsque j'essaie ton fichier !!!!! Alors, j'ai copié ta colonne G
(SK...ON...QC etc) et je l'ai collé diretement à la place de mes QC, ON, NB,
etc......

Devine..... Ca fonctionne à merveille.... Conclusion: ta macro est une
petite merveille, sauf que je vais devoir forcer Excel à reconnaitre les
valeurs contenues dans ma colonne G comme étant du texte valide !!!!

Tu as été extrêmement aimable et surtout patient. Ton fichier joint m'a
permis de comprendre d'où venait le problème....... Faudra le résoudre.

Merci encore

Denys


Ah ?
Regarde le classeur suivant :
http://cjoint.com/?lwuObuTh0P
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Désolé, ça ne fonctionne toujours pas..... Excel ne semble pas reconnaitre
le "array"... Il saute toujours la condition...

Denys


Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de
news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la
cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value > >> >> > "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys























Avatar
michdenis
Bonjour Denys,

Copie ceci dans le module feuille concerné.
Si tu entres en colonne G, les initiales d'une province,
la colonne H de la même ligne sera affublée de "CAN"

'------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Arr As Variant, Rg As Range
Arr = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB", "BC", "TN", "YK", "NU")
Set Rg = Intersect(Target, Range("G:G"))

If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If IsNumeric(Application.Match(c, Arr, 0)) Then

c.Offset(, 1) = "CAN"
Else
c.Offset(, 1) = ""
End If
Next
Application.EnableEvents = True
End If
End Sub
'------------------------


Salutations!



"Denys" a écrit dans le message de news:
Bonjour Daniel,

Crois-le ou non....... Excel ne veut absolument rien savoir....... même
lorsque j'essaie ton fichier !!!!! Alors, j'ai copié ta colonne G
(SK...ON...QC etc) et je l'ai collé diretement à la place de mes QC, ON, NB,
etc......

Devine..... Ca fonctionne à merveille.... Conclusion: ta macro est une
petite merveille, sauf que je vais devoir forcer Excel à reconnaitre les
valeurs contenues dans ma colonne G comme étant du texte valide !!!!

Tu as été extrêmement aimable et surtout patient. Ton fichier joint m'a
permis de comprendre d'où venait le problème....... Faudra le résoudre.

Merci encore

Denys


Ah ?
Regarde le classeur suivant :
http://cjoint.com/?lwuObuTh0P
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Désolé, ça ne fonctionne toujours pas..... Excel ne semble pas reconnaitre
le "array"... Il saute toujours la condition...

Denys


Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de
news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la
cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value > >> >> > "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys























Avatar
Denys
Re-bonjour Daniel,

Solution finale: utilliser la fonction "Trim" sur la colonne G auparavant
afin d'enlever les caractères invisibles, puis ensuite utilsier ta macro....

Maintenant, tout est parfait...

Merci encore pour ta précieuse aide....

Denys


Bonjour Daniel,

Crois-le ou non....... Excel ne veut absolument rien savoir....... même
lorsque j'essaie ton fichier !!!!! Alors, j'ai copié ta colonne G
(SK...ON...QC etc) et je l'ai collé diretement à la place de mes QC, ON, NB,
etc......

Devine..... Ca fonctionne à merveille.... Conclusion: ta macro est une
petite merveille, sauf que je vais devoir forcer Excel à reconnaitre les
valeurs contenues dans ma colonne G comme étant du texte valide !!!!

Tu as été extrêmement aimable et surtout patient. Ton fichier joint m'a
permis de comprendre d'où venait le problème....... Faudra le résoudre.

Merci encore

Denys


Ah ?
Regarde le classeur suivant :
http://cjoint.com/?lwuObuTh0P
Daniel
"Denys" a écrit dans le message de news:

Bonjour Daniel,

Désolé, ça ne fonctionne toujours pas..... Excel ne semble pas reconnaitre
le "array"... Il saute toujours la condition...

Denys


Désolé :

Dim Tabl, c As Range
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next i
Next cell
Daniel
"Denys" a écrit dans le message de
news:

Bonjour Daniel,

Merci infiniment pour ta réponse...... cependant Excel me répond
" Invalid Next Control Variable Reference"

et surligne le mot cell tout de suite après Next...

Saurais-tu pourquoi?

Merci encore

Denys


Bonjour.
Essaie :

Dim Tabl
Tabl = Array("NL", "NB", "NS", "PE", "QC", "ON", "MB", "SK", "AB",
"BC",
"TN", "YK", "NU")
For Each cell In plg1
For i = 0 To 12
If cell.Offset(0, -1) = Tabl(i) Then
cell.Formula = "CAN"
Exit For
End If
Next cell

Cordialement.
Daniel
"Denys" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais pouvoir écrire en colonne H les lettres CAN si la
cellule
correspondant en colonne G est une province.

Les provinces sont définies par les lettres suivantes:
NL
NB
NS
PE
QC
ON
MB
SK
AB
BC
TN
YK
NU

Voici mon code, mais ça ne marche pas....

Sub AjoutFinal()

Application.ScreenUpdating = False
With Worksheets("RBIS Workpage")
Set plg1 = .Range("H2:H" & .Range("G65536").End(xlUp).Row)
For Each cell In plg1
If cell.Offset(0, -1).Value = "ON" or cell.Offset(0, -1).Value > > >> >> > "QC"
... etc...Then cell.FormulaR1C1 = "CAN"
Next cell

End Sub

Pourriez-vous m'aider?

Merci

Denys