Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Explication d'un bout de code

  • Initiateur de la discussion Initiateur de la discussion sasori14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sasori14

Guest
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.. 😕

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
 
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...
 
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
 
Re : Explication d'un bout de code

C'est bon, il suffisait de (simplement) terminer par :
Right(ActiveSheet.Cells(Inc_Ligne, 1), Len(ActiveSheet.Cells(Inc_Ligne, 1)) - Temp_Inc)

Merci encore 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
3
Affichages
973
M
Réponses
3
Affichages
1 K
C
Réponses
2
Affichages
798
K
Réponses
3
Affichages
1 K
J
Réponses
10
Affichages
3 K
jibe94370
J
A
Réponses
4
Affichages
7 K
azerty123
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…