Identification et codage VBA

Identification et codage VBA - VB/VBA/VBS - Programmation

Marsh Posté le 13-05-2013 à 14:11:50    

Bonjour,
 
Je voudrais créer une macro pour lister sur une colonne à part un code spécifique.
Sur ma colonne D de la feuille "données" se trouve différent mot et je voudrais identifier chaque mot par un code ( comme j'ai mis A1 etc...) et reproduire cette même colonne sur une autre feuille mais avec cette série de code et non de mot...
 
Je débute et je galère vraiment beaucoup...
Voici ma macro, elle ne fonctionne pas car je voudrais séléctionner les cellules de la ligne 2 à 250 en faite et je sais pas comment faire? :(
 
 
Sub Macro1()
'
' Macro1 Macro
'
 
'
Sheets("données" ).Select
Columns("D:D" ).Select
 
 
For i = 2 To 273
 
If Range("Di" ) = "Histoire" Then
If Range("Di" ) = "vitesse" Then
 
Sheets("code1" ).Select
Range("Ai" ).Select
 
Range("Ai" ) = "B1"
Range("Ai" ) = "E1"
 
End If
End If
Next
 
End Sub
 
 
 
merci  infiniment si vous pouviez me corriger ou me donnez des pistes !

Reply

Marsh Posté le 13-05-2013 à 14:11:50   

Reply

Marsh Posté le 13-05-2013 à 14:25:45    

Bonjour,
la syntaxe de tes range + variable n'est pas bonne.
Soit tu fais range("A" & i), soit cells(i, 1) => les caractères entre doubles quotes ("" ) sont interprétés comme une chaîne de caractère. Les variables doivent donc être hors des doubles quotes
Dans ton cas, Range("Ai" ) est interprété comme la cellule Ai alors que range("A" & i) l'est comme la cellule A100 si i=100 par exemple.
 
 
Il y aurait d'autres choses à corriger, mais dans un premier temps essaye comme ça.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 13-05-2013 à 14:37:09    

Merci beaucoup de ta réponse si rapide oovaveoo !! Tu me remontes le moral car je commençais à desespérer...
 
Ma macro devient:
Sub WEELIBS()
 
Sheets("données" ).Select
Columns("D:D" ).Select
 
For i = 2 To 250
If Range("D" & i) = "Histoire" Then
 
Sheets("code1" ).Select
Range("A" & i).Select
Range("A" & i) = "B1"
End If
Next
End Sub
 
 
 
Le soucis que j'ai maintenant est que, une fois lancé, elle ne m'affiche que B1 comme résultat sur la feuille "code1" alors que i va de 2 à 273...
 
En gros ma colonne sur la feuille "données" est :
D1 = Histoire
D2 = Histoire
D3 = Histoire
D4 = Histoire
D5 = Vitesse
D6 = Vitesse
 
J'associe Histoire à un code B1 disons et je voudrais que la macro me donne, dans un colonne située sur une autre feuille ("code1" ) l'équivalence en code .
C'est pour ça que je veux que la macro traite chaque ligne mais cela ne semble pas fonctionner car sur ma feuille "code1" j'ai juste la cellule A2 où apparait le code B1. Ce dernier devrait aussi apparaitre à A3, A4, A5 .
 
Ca serait super génial si vous aviez une idée pour corriger ma macro car je pense que je suis pas si loin que ça quand même ( en fin j'espère^^)

Reply

Marsh Posté le 13-05-2013 à 14:45:19    

Je ne comprend pas trop ce que tu veux faire.
C'est toujours le même code qui est associé à chaque donnée => histoire = "HH" ; Vitesse = "VV" par exemple ??
 
Si oui, tu peux utiliser Select Case :
 

Code :
  1. Sub WEELIBS()
  2. Sheets("données" ).Select
  3. For i = 2 To 250
  4. Select case Range("D" & i)
  5.   case "Histoire"
  6.     Sheets("code1" ).Range("A" & i) = "HH"
  7.   case "Vitesse"
  8.     Sheets("code1" ).Range("A" & i) = "VV"
  9. End Select
  10. Next
  11. End Sub


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 13-05-2013 à 14:52:40    

Oui c'est ça, j'associe le mot Histoire au code B1 par exemple ou HH comme tu dis .
 
En gros ma colonne initiale, qui ne comporte que des mots, je veux la "transformer" par une série de code sur un autre feuille.
 
Par exemple, sur ma feuille "données", ma colonne D est comme suivant:
D1 = Histoire
D2 = Histoire
D3 = Vitesse
D4 = Trcmuche
D5 = Trucmuche
D6 = Trucmuche
 
etc...
 
En gros je voudrais que cela devienne sur une autre feuille "code1"
 
A1 = HH
A2= HH
A3= BB
A4= CC
A5 =CC
A6 =CC
 
En tout cas merci déjà beaucoup pour ton aide précieuse et de tes explications :)

Reply

Marsh Posté le 13-05-2013 à 15:03:01    

Ahhhh mon dieu c'est presque bon ! :o
En fait le seul soucis est que le VV, pour reprendre ton exemple, n'apparait pas sur ma colonne A de code, ça s'arrête au HH...
 
du genre j'ai:
 
D1= histoire
D2= histoire
D3 = histoire
D4 = Histoire
D5 = vitesse
D6 = vitesse
 
Sur ma feuille "code1" j'ai ça qui apparait:
 
A1 = HH
A2 = HH
A3 = HH
A4 = HH
A5 =  
A6 =
Ya rien qui apparait aux cases 5 et 6 ...
 
 
Si t'aurais une solution ça serait génial !
 
Mon prof m'a également suggérer d'utiliser la fonction " if" pour dire que , si ya le mot "histoire" alors...
 
je sais pas si tu vois ce que je veux dire ?
 
 
 

Reply

Marsh Posté le 13-05-2013 à 15:10:26    

Autant pour moi ça fonctionne bien ! J'ai mal écrit le mot à coder d'où le fait qu'il le reconnaissait pas ! lol
 
Mais sinon si tu as une réponse sur le "if" je suis preneur !
 
Mais merci beaucoup déjà tu m'as bien aider car je séchais dessus depuis ce matin !^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed