Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Select case

  • Initiateur de la discussion Xavier
  • Date de début
X

Xavier

Guest
Bonjour,

désolé de revenir avec cette fontion (vu les quelques files que j'ai lu) mais mon programme ne l'effectue pas.
Le but est de vérifier dans un fichier annexe, ce qui se trouve dans une case (H) et d'écrire dans mon fichier de base en fonction de cette case un descriptif.

Merci bcp

Pour etre plus simple voilà ce que j'ai:

Dim Ligne

For Ligne = 2 To 4000
'Par la suite j'aimerais remplacer ceci par le nombre de lignes qui se trouve dans le fichier (de la ligne 2 à x ) est ce possible ??

Select Case (Range("H" & Ligne).Value)

Range("A" & Ligne) = "papa"
Case "P"
Windows(F0).Activate
Range("A" & Ligne) = "Maman"
Case "M"
Windows(F0).Activate
Range("A" & Ligne) = "TATA"
Case "T"
Windows(F0).Activate
Range("A" & Ligne) = "Other"
Case "V"
Windows(F0).Activate
Range("A" & Ligne) = "Other"
End Select
Next
 
A

Arnaud

Guest
salut,

je ne comprend pas trop ta question.
ton code m'a l'air correct, enfin tout dépend de ceux que tu veux qu'il fasse derrière les case.
la tu a écris :

quand c un P :
Windows(F0).Activate
Range("A" & Ligne) = "Maman"

quand c un M:
Windows(F0).Activate
Range("A" & Ligne) = "TATA"

et je sen que c pas ce que tu veux que ça fasse.
c le case d'abord et ensuite ce qu'il doit faire si c la cas.
 
P

Pascal76

Guest
Bonjour,

je n'arrive pas trop à voir comment tu as construit ton select case

Je crois voir que tu as 2 classeurs

Peux-tu détailler le nom des classeurs des feuilles de départ là où tu fais ta boucle et celui ou tu copies des résultats

Pascal
 
A

Arnaud

Guest
re,

si il ne le fais qu'une fois c peut être que cela explose.
met une getions d'erreur pour voir si c ça :

On Error GoTo Erreur

'écrit ton code ici

Exit Sub
Erreur:
MsgBox Err.Description
 
X

Xavier

Guest
voici le détail... J'ai deux fichier un auxiliaire et un de base, le but étant de prendre certaines données de l'auxiliaire pour les placer dans le base. Avant cette opération, j'ai déjà créer mon fichier de base (F0) et le F1 concerne le premier fichier auxiliaire. J'ai également déjà effectué une premiere opération entre ces deux fichiers que je conclus en réouvrant la fenetre du fichier F1 afin d'y effectuer mon select case vu que les cellules contenant les lettres s'y trouvent

J'espere que cela vous aidra à m'aider ... du moins un tout grand merci

Xa


Windows(F1).Activate
Application.CutCopyMode = False

Dim Ligne

For Ligne = 2 To 4000

Select Case (Range("H" & Ligne).Value)
Case "P"
Windows(F0).Activate
Range("A" & Ligne) = "Maman"
Case "M"
Windows(F0).Activate
Range("A" & Ligne) = "TATA"
Case "T"
Windows(F0).Activate
Range("A" & Ligne) = "Other"
Case "V"
Windows(F0).Activate
Range("A" & Ligne) = "Other"
End Select
Next
 
P

Pascal76

Guest
Re

Essaies ce code

Dim Ligne

For Ligne = 2 To Workbooks("F1").worksheets("TaPage").Range("H65536").end(xlup).row

Select Case Workbooks("F1").worksheets("TaPage").Range("H" & Ligne)
Case "P"
Workbooks("F0").worksheets("LaPage").Range("A" & Ligne) = "Maman"
Case "M"
Workbooks("F0").worksheets("LaPage").Range("A" & Ligne) = "TATA"
Case "T"
Workbooks("F0").worksheets("LaPage").Range("A" & Ligne) = "Other"
Case "V"
Workbooks("F0").worksheets("LaPage").Range("A" & Ligne) = "Other"
End Select
Next

Bon courage

Pascal
 
X

Xavier

Guest
Rebonjour,

Désolé mais ca ne marche pas il me parle de subscipt out of range. J'ai déjà eu cela plusieur fois et je me demande si ca n'était pas en rapport avec les références ??

Xa

ps: j'ai mis la transformation pour vérification

For Ligne = 2 To Workbooks("F1").Worksheets("Sheet1").Range("H65536").End(xlUp).Row

Select Case Workbooks("F1").Worksheets("Sheet1").Range("H" & Ligne)
Case "A"
Workbooks("F0").Worksheets("Sheet1").Range("A" & Ligne) = "maman"
Case "B"
Workbooks("F0").Worksheets("Sheet1").Range("A" & Ligne) = "papa"
End select
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…