OVH Cloud OVH Cloud

if then, avec une table

4 réponses
Avatar
marchepied
Bonjour,
Feuil2: J'ai une table de code pays (sur 3 caractères) appelée PAYS.
(F2:F30)
Feuil1: J'ai un grand tableau avec en colonne "C" des codes pays.
Je voudrai faire une macro avec les instructions suivantes:

if c2 existe dans PAYS then
' traitement concernant les enregistrements avec le pays trouvé dans
la table
else
' traitement concernant les enregistrements avec le pays trouvé dans
la table
endif

1) Je recherche la bonne formule concernant la ligne avec le "if"
2) j'ai indiqué "c2" mais, en faite, le traitement doit être fait sur
toute la colonne "C".
Merci de votre aide,
Marchepied,

4 réponses

Avatar
marchepied
Correction:
le 2eme commentaire est le suivant:
' traitement concernant les enregistrements non trouvès
dans la table "pays".

-----Message d'origine-----
Bonjour,
Feuil2: J'ai une table de code pays (sur 3 caractères)
appelée PAYS.

(F2:F30)
Feuil1: J'ai un grand tableau avec en colonne "C" des
codes pays.

Je voudrai faire une macro avec les instructions
suivantes:


if c2 existe dans PAYS then
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
else
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
endif

1) Je recherche la bonne formule concernant la ligne avec
le "if"

2) j'ai indiqué "c2" mais, en faite, le traitement doit
être fait sur

toute la colonne "C".
Merci de votre aide,
Marchepied,
.



Avatar
Ellimac
Bonjour,

Une possibilité :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = Application.VLookup(ActiveCell, Sheets
("feuil2").Range("Pays"), 1, 0)
If Not IsError(a) Then
MsgBox "traitement 1"
Else
MsgBox "traitement 2"
End If
ActiveCell.Offset(1).Select
Wend
End Sub

Camille

-----Message d'origine-----
Bonjour,
Feuil2: J'ai une table de code pays (sur 3 caractères)
appelée PAYS.

(F2:F30)
Feuil1: J'ai un grand tableau avec en colonne "C" des
codes pays.

Je voudrai faire une macro avec les instructions
suivantes:


if c2 existe dans PAYS then
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
else
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
endif

1) Je recherche la bonne formule concernant la ligne avec
le "if"

2) j'ai indiqué "c2" mais, en faite, le traitement doit
être fait sur

toute la colonne "C".
Merci de votre aide,
Marchepied,
.



Avatar
marchepied
Merci beaucoup Camille,
Ca marche très bien.
J'ai une autre petite question:
A la place de: MsgBox "traitement 1"
j'ai quelque chose comme par exemple: range("Y2") = "99"
Or, le Y2 ne suit pas la progression de C2
Comme puis-je faire progresser la colonne Y (avec 1 2 3
etc..) en même temps que la colonne C (1 2 3 etc..) ?
Merci encore.
Marchepied,


-----Message d'origine-----
Bonjour,

Une possibilité :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = Application.VLookup(ActiveCell, Sheets
("feuil2").Range("Pays"), 1, 0)
If Not IsError(a) Then
MsgBox "traitement 1"
Else
MsgBox "traitement 2"
End If
ActiveCell.Offset(1).Select
Wend
End Sub

Camille

-----Message d'origine-----
Bonjour,
Feuil2: J'ai une table de code pays (sur 3 caractères)
appelée PAYS.

(F2:F30)
Feuil1: J'ai un grand tableau avec en colonne "C" des
codes pays.

Je voudrai faire une macro avec les instructions
suivantes:


if c2 existe dans PAYS then
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
else
' traitement concernant les enregistrements avec le pays
trouvé dans

la table
endif

1) Je recherche la bonne formule concernant la ligne
avec


le "if"
2) j'ai indiqué "c2" mais, en faite, le traitement doit
être fait sur

toute la colonne "C".
Merci de votre aide,
Marchepied,
.

.





Avatar
Ellimac
Bonjour,

il faut utiliser la méthode Offset (décaler n lignes n
colonnes) :

ActiveCell.Offset(0,22)™

Camille

-----Message d'origine-----
Merci beaucoup Camille,
Ca marche très bien.
J'ai une autre petite question:
A la place de: MsgBox "traitement 1"
j'ai quelque chose comme par exemple: range("Y2") = "99"
Or, le Y2 ne suit pas la progression de C2
Comme puis-je faire progresser la colonne Y (avec 1 2 3
etc..) en même temps que la colonne C (1 2 3 etc..) ?
Merci encore.
Marchepied,


-----Message d'origine-----
Bonjour,

Une possibilité :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = Application.VLookup(ActiveCell, Sheets
("feuil2").Range("Pays"), 1, 0)
If Not IsError(a) Then
MsgBox "traitement 1"
Else
MsgBox "traitement 2"
End If
ActiveCell.Offset(1).Select
Wend
End Sub

Camille

-----Message d'origine-----
Bonjour,
Feuil2: J'ai une table de code pays (sur 3 caractères)
appelée PAYS.

(F2:F30)
Feuil1: J'ai un grand tableau avec en colonne "C" des
codes pays.

Je voudrai faire une macro avec les instructions
suivantes:


if c2 existe dans PAYS then
' traitement concernant les enregistrements avec le
pays



trouvé dans
la table
else
' traitement concernant les enregistrements avec le
pays



trouvé dans
la table
endif

1) Je recherche la bonne formule concernant la ligne
avec


le "if"
2) j'ai indiqué "c2" mais, en faite, le traitement doit
être fait sur

toute la colonne "C".
Merci de votre aide,
Marchepied,
.

.


.