Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2531 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Identification et codage VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Identification et codage VBA

n°2189944
macrosouci​s
Posté le 13-05-2013 à 14:11:50  profilanswer
 

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 !

mood
Publicité
Posté le 13-05-2013 à 14:11:50  profilanswer
 

n°2189947
vave
Nice to meet me
Posté le 13-05-2013 à 14:25:45  profilanswer
 

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
n°2189949
macrosouci​s
Posté le 13-05-2013 à 14:37:09  profilanswer
 

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^^)

n°2189950
vave
Nice to meet me
Posté le 13-05-2013 à 14:45:19  profilanswer
 

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
n°2189954
macrosouci​s
Posté le 13-05-2013 à 14:52:40  profilanswer
 

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 :)

n°2189955
macrosouci​s
Posté le 13-05-2013 à 15:03:01  profilanswer
 

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 ?
 
 
 

n°2189956
macrosouci​s
Posté le 13-05-2013 à 15:10:26  profilanswer
 

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 !^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Identification et codage VBA

 

Sujets relatifs
Vba import csv to xls[Excel/VBA] MàJ Données Graphique
[VBA] comparaison de 2 fichiers excel[VBA-Excel] selection d'une plage variable
[VBA][Excel] UserForm modeless dans une boucle[VBA] [Access] Soucis de byref et conversion de type
[VBA][Excel] modif- selection onglet source.[résolu]S.O.S excel/access VBA
[VBA-Macros][Excel]Comparaison de deux datesVBA Gestion de Portefeuille, portefeuille optimal
Plus de sujets relatifs à : Identification et codage VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR