Explication d'un bout de code

sasori14

XLDnaute Junior
Bonsoir à tous et à toutes.

Quelqu'un pourrait-il svp m'expliquer pas à pas ces lignes de codes svp. Cela fait 30mn que j'essaie en vain.. :confused:

Je voudrai modifier ce code afin de récupérer le texte à droite des ":" de la ligne ou le mot "toto" est trouvé dans la première cells (donc plus simple que ci-dessous).

En vous remerciant d'avance pour votre éclairage !

If Left(ActiveSheet.Cells(Inc_Ligne, 1), 4) = "toto" Then
Temp_Inc = InStr(ActiveSheet.Cells(Inc_Ligne, 1), ":")
Temp_Inc2 = InStr(Temp_Inc + 1, ActiveSheet.Cells(Inc_Ligne, 1), ":")
toto = Right(ActiveSheet.Cells(Inc_Ligne, 1), Len(ActiveSheet.Cells(Inc_Ligne, 1)) - Temp_Inc2
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Explication d'un bout de code

Bonjour,

Voilà, dans cet exemple, on suppose qu'il y a deux fois des ":" dans la chaîne de caractères

VB:
If Left(ActiveSheet.Cells(Inc_Ligne, 1), 4) = "toto" Then  'Si les 4 caractères de gauche de la cellule se trouvant en "A?") ou ? =Inc_Ligne sont "toto" alors
Temp_Inc = InStr(ActiveSheet.Cells(Inc_Ligne, 1), ":")  'Recherche la position des caractères ":" dans cette cellule à partir du 1er caractère. sauvegarder cette position dans Temp_Inc
Temp_Inc2 = InStr(Temp_Inc + 1, ActiveSheet.Cells(Inc_Ligne, 1), ":")  'Recherche la postion du caractère ":" après la première occurence trouvée, sauvegarder cette 2e position dans Temp_Inc2
toto = Right(ActiveSheet.Cells(Inc_Ligne, 1), Len(ActiveSheet.Cells(Inc_Ligne, 1)) - Temp_Inc2 'La valeur de toto: on conserve les caractères de droite se trouvant après la 2e occurence de ":"

'Exemple :
'toto_123:56789:abcdef
'TempInc = 9
'TempInc2 = 15
'toto = abcdef

A+

PS : voir l'aide sur la fonction InStr...
 

sasori14

XLDnaute Junior
Re : Explication d'un bout de code

Pb..

en mettant ce code, je récupère l'ensemble de la cellule et non pas seulement les caractères à droite des ":"

If Left(ActiveSheet.Cells(Inc_Ligne, 1), 4) = "toto" Then
Temp_Inc = InStr(ActiveSheet.Cells(Inc_Ligne, 1), ":")
toto = Right(ActiveSheet.Cells(Inc_Ligne, 1), Len(ActiveSheet.Cells(Inc_Ligne, 1)))
End If
 

Discussions similaires

Statistiques des forums

Discussions
312 576
Messages
2 089 864
Membres
104 294
dernier inscrit
BByd