Générer des codes sur Excel

Générer des codes sur Excel - VB/VBA/VBS - Programmation

Marsh Posté le 12-05-2013 à 13:45:53    

Bonjour à tous,
 
Je galère pas mal à faire une macro assez simple en soit je pense mais n'ayant pas de base la dedans c'est vraiment désespérant...
 
Je demande donc si une personne aurait la gentillesse de me consacrer un peu de son temps pour me faire une macro sur Excel ! Les manœuvres à faire sont basiques certainement mais je ne les maîtrises pas bien ou pas du tout plutôt.
 
Donc en faite il me faudrait une macro générant des codes. En gros imaginons que l'on prenne 2 colonnes où on listes des mots ou autres. A chaque élément de ma colonne je vais lui associer un code spécifique ( idem pour la 2ème colonne).  
A partir de cela , je voudrais générer pour un couple ( imaginons les cellules B3 et C3), un code dans la cellule A3 !
 
 
Voilà je sais pas si vous avez compris mais je vous met un exemple:
 
Imaginons que ma cellule B2 comporte le mot "bière" ( le code associé à bière est le chiffre 1) et ma cellule C2 comporte le mot "ananas" ( le code associé à ananas est la lettre A). Le code généré dans la cellule A2 doit donc être 1A et ainsi de suite...
 
 
 
Ca serait génial si quelqu'un pouvais m'aider assez rapidement voir même me donner des pistes  
 
Mon email personnel: jeupppp@live.fr
 
Merci de votre aide !  

Reply

Marsh Posté le 12-05-2013 à 13:45:53   

Reply

Marsh Posté le 12-05-2013 à 13:55:09    

J'ai trouvé cette macro là sur ce forum même mais elle ne correspond pas vraiment à ce que je veux...
 
Sub AjoutCode()  
Dim strCode As String, I As Integer, L As Long, J As Long, N As Integer  
 
L = 1  
While Range("A" & L).Value <> ""  
strCode = Left(Range("A" & L).Value, 1)  
I = 1  
Do While I > 0  
I = InStr(I + 1, Range("A" & L).Value, " " )  
If I > 0 Then  
strCode = strCode & Left(Mid(Range("A" & L).Value, I + 1), 1)  
End If  
Loop  
strCode = strCode & Left(Range("B" & L).Value, 1)  
I = 1  
Do While I > 0  
I = InStr(I + 1, Range("B" & L).Value, " " )  
If I > 0 Then  
strCode = strCode & Left(Mid(Range("B" & L).Value, I + 1), 1)  
End If  
Loop  
J = 1  
N = 0  
strCode = UCase(strCode)  
While Range("C" & J).Value <> ""  
If J <> L Then  
If Left(Range("C" & J).Value, Len(Range("C" & J).Value) - 2) = strCode Then  
If CInt(Right(Range("C" & J).Value, 2)) > N Then N = CInt(Right(Range("C" & J).Value, 2))  
End If  
End If  
J = J + 1  
Wend  
 
N = N + 1  
If Range("C" & L).Value = "" Then  
If N < 10 Then  
Range("C" & L).Value = strCode & "0" & N  
Else  
Range("C" & L).Value = strCode & N  
End If  
End If  
L = L + 1  
Wend  
End Sub  
 
 
 
 
Je voudrais pas reprendre les Initiales de chaque colonne mais un nombre ou une lettre spécifique.
De plus comment étendre cette macro si on veut mettre en place un code disons pour 4, 5 colonnes etc...
Ah oui et aussi comment la modifier pour que pour chaque ligne s'affiche en bout de code le chiffre 001 pour la cellule A2 disons, puis 002 pour la cellule A3 et ainsi de suite pour toutes les lignes...car dans le programme ci-dessus, la personne vous dire que si, pour un couple donné, les initiales étaient les  mêmes, alors il mettait en fin de code le chiffre 02 pour les différencier mais je ne veux pas de cela.
 
merci beaucoup de votre aide !

Reply

Marsh Posté le 12-05-2013 à 13:56:31    

Voici d'aileurs le détail de son post:
 
salut à tous,  
 
dans mon classeur excel, je voulais generer un code qui se place en colonne C par rapport au mot inscrit en colonne A et B sur la meme ligne.  
 
Je m'explique :  
 
A3 = drosera  
B3 = capensis alba  
C3 = DCA01 (le fameux code)  
 
En gros le code generer prend la premiere lettre de chaque mot plus la valeur 01, si DCA01 existe alors il pass a DCA02, etc...  
 
On m'a gentillement fait la macro, mais je n'arrive pas a l'adapter pour que le processus commence a partir de A3, car la si il n'y a rien en ligne 1 ça ne marche pas.  
 
 
voila !

Reply

Marsh Posté le 12-05-2013 à 15:14:49    

 
             Bonjour.
 

macrosoucis a écrit :

On m'a gentillement fait la macro […]


             Il aurait fallu commencer par là, en publiant son code et en indiquant de claires explications …
 

Reply

Marsh Posté le 12-05-2013 à 16:34:58    

Bonjour,
 
Celle-ci est bien postée au post 1 par moi-même. Elle fonctionne en tout cas (j'ai copié et collé et lancé)mais j'y comprends pas grand chose à ce qu'il y a d'écrit...

Reply

Sujets relatifs:

Leave a Replay

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