Générer code sous excel - VB/VBA/VBS - Programmation
Marsh Posté le 25-10-2005 à 05:01:05
Bonjour,
Sub AjoutCode()
Dim strCode As String, I As Integer, L As Long, J As Long, N As Integer
L = 3
... le reste sans changement
A+
Marsh Posté le 25-10-2005 à 07:26:49
salut,
merci galopin01, ça fonctionne bien a partir de la 3é ligne, mais maintenant la macro se comporte differement.
Car si un code existe ça passe a la valeur +1 normalement, et maintenant si le code AVA01 existe alors le suivant code generer et aussi AVA01 et non AVA02.
@+
Marsh Posté le 25-10-2005 à 08:57:39
bonjour,
J'ai trouvé plus simple de refaire à ma manière :
Code :
|
A+
Marsh Posté le 25-10-2005 à 12:43:34
salut galopin01,
merci beaucoup, ton code marche super, je vais l'utiliser plutot que l'autre.
Par contre ou peut on rajouter Ucase pour avoir tout le code generé en majuscule.
Merci encore.
@+
Marsh Posté le 25-10-2005 à 20:08:11
bonsoir,
ligne 17, 21 et 23 remplacer strC par UCase(strC)
A+
Marsh Posté le 25-10-2005 à 20:14:13
salut galopin,
ce que j'ai fait , c'est que entre la ligne 14 et 15 j'ai ajouté ceci:
strC = UCase(strC)
et ça marche.
Vaut il mieu utiliser ta méthode ou la mienne fonctionne pareille ?
Merci
@+
Marsh Posté le 24-10-2005 à 20:04:08
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.
Voici la macro:
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
Donc si quelqu'un a une idée, qu'il n'hésite pas ???
Merci
@+