Récupérer une chaine de caractère variable sur excel
Résolu
Losiu
-
Losiu -
Losiu -
Bonjour le forum,
J'ai un souci sur VBA.
J'ai ceci dans mes cellules Excel :
<Type>CRB</Type>
<Statut>Série</Statut>
...
--------------------------------------------------------------------------------------------------
Je voudrais avec un code VBA récupérer uniquement les données "CRB" et "Série".
Pour l'instant j'ai ceci qui élimine la première partie en amont de la donnée :
Chaine1 = Sheets("Feuil1").Cells(a, j).Value
Cells(a, j).Value = Right(Chaine1, Len(Chaine1) - InStr(Chaine1, ">"))
Ca me permet de conserver tout les caractères à droite de ">"
--------------------------------------------------------------------------------------------------
En vous remerciant du temps que vous allez passer dessus!
Cordialement
J'ai un souci sur VBA.
J'ai ceci dans mes cellules Excel :
<Type>CRB</Type>
<Statut>Série</Statut>
...
--------------------------------------------------------------------------------------------------
Je voudrais avec un code VBA récupérer uniquement les données "CRB" et "Série".
Pour l'instant j'ai ceci qui élimine la première partie en amont de la donnée :
Chaine1 = Sheets("Feuil1").Cells(a, j).Value
Cells(a, j).Value = Right(Chaine1, Len(Chaine1) - InStr(Chaine1, ">"))
Ca me permet de conserver tout les caractères à droite de ">"
- NB : Cells(a, j) me permet de faire la manipulation automatiquement sur tout mon tableau.
--------------------------------------------------------------------------------------------------
En vous remerciant du temps que vous allez passer dessus!
Cordialement
A voir également:
- Récupérer une chaine de caractère variable sur excel
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Liste déroulante excel - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Déplacer une colonne excel - Guide
1 réponse
Bonjour Losiu, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Sub Macro1() Dim O As Worksheet 'déclare la variable O (Onglet) Dim DL As Integer 'déclare la variable DL (Dernière Ligne) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes) Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas) DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A (colonne à adapter) de l'onglet O TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV ReDim TL(1 To UBound(TV, 1), 1 To UBound(TV, 2)) 'redimensionne le tableau des lignes TL (autant de ligne que TV) For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV For J = 1 To UBound(TV, 2) 'boucle 2 : sur toutes les colonne J du tableau des valeurs TV On Error Resume Next 'gestion des erreurs (ec cas d'erreur pass à la ligne suivante) TL(I, J) = Split(Split(TV(I, J), ">")(1), "<")(0) 'récupere dans TL(I, J) le texte après le premier ">", puis de cette partie récupérée, le texte avant le premier "<" If Err <> 0 Then 'condition : si une erreur a été générée (si le texte ne contient pas "<" ou ">" par exemple Err.Clear 'efface l'erreur TL(I, J) = TV(I, J) 'récupere dans TL(I, J) la donnée de TV(I, J) End If 'fin de la condition 'On Error GoTo 0 'annule la gestion des erreurs Next J 'prochaine colonne de la boucle 2 Next I 'prochaine ligne de la boucle 1 'renvoie dans la cellule A1 redimensionnée de l'onglet O, le tableau TL transposé O.Range("A1").Resize(UBound(TL, 1), UBound(TL, 2)).Value = TL End Sub
Je ne peux pas essayer desuite mais je comprends ce que tu veux faire !!
Super les explications pour un novice comme moi ;)
Encore merci et super réactivité :)
A plus :)