Méthode itérative Excel pour décomposer champ
Résolu/Fermé
coco49rico
-
31 oct. 2010 à 14:00
rico49-29 Messages postés 4 Date d'inscription dimanche 31 octobre 2010 Statut Membre Dernière intervention 27 mai 2011 - 31 oct. 2010 à 15:22
rico49-29 Messages postés 4 Date d'inscription dimanche 31 octobre 2010 Statut Membre Dernière intervention 27 mai 2011 - 31 oct. 2010 à 15:22
A voir également:
- Méthode itérative Excel pour décomposer champ
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
4 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
31 oct. 2010 à 14:13
31 oct. 2010 à 14:13
Bonjour,
Voir deux fonctions...
1°) "Replace" pour changer les tirets par des ; (point-virgule)
2°) "Split" pour tout séparer
Si tu ne connaît pas ces fonctions, double clic pour mettre le mot en surbrillance (sélectionner) et tape F1.
A+
Voir deux fonctions...
1°) "Replace" pour changer les tirets par des ; (point-virgule)
2°) "Split" pour tout séparer
Si tu ne connaît pas ces fonctions, double clic pour mettre le mot en surbrillance (sélectionner) et tape F1.
A+
rico49-29
Messages postés
4
Date d'inscription
dimanche 31 octobre 2010
Statut
Membre
Dernière intervention
27 mai 2011
31 oct. 2010 à 14:21
31 oct. 2010 à 14:21
Merci pour la réponse mais cela ne réponds pas à ma problématique de la transformation de C1-C10 en C1;C2;C3;C4;C5;C6;C7;C8;C9;C10
Rico
Rico
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
31 oct. 2010 à 14:38
31 oct. 2010 à 14:38
Effectivement,
Mais avec cette macro ça devrait aller...
A+
Mais avec cette macro ça devrait aller...
Sub Remplace() Dim Test As String, C As String, i As Integer, e As Integer, TB1, TB2 Dim Deb As Integer, Fin As Integer, Lettre As String Dim Result As String Test = "C1-C10;C12-C14;C15;C17-C20" TB1 = Split(Test, ";") For i = 0 To UBound(TB1) TB2 = Split(TB1(i), "-") If UBound(TB2) = 0 Then 'quand il n'y à qu'une donnée If Result <> "" Then Result = Result & ";" Result = Result & TB2(0) Else C = "" For e = 1 To Len(TB2(0)) 'début de la série If Asc(Mid(TB2(0), e, 1)) < 65 Then Exit For Next e Deb = Val(Mid(TB2(0), e)) Lettre = Left(TB2(0), e - 1) For e = 1 To Len(TB2(1)) 'fin de la série If Asc(Mid(TB2(0), e, 1)) < 65 Then Exit For Next e Fin = Val(Mid(TB2(1), e)) For e = Deb To Fin C = C & ";" & Lettre & e Next e If Result <> "" Then Result = Result & ";" Result = Result & Mid(C, 2) End If Next i End Sub
A+
rico49-29
Messages postés
4
Date d'inscription
dimanche 31 octobre 2010
Statut
Membre
Dernière intervention
27 mai 2011
31 oct. 2010 à 15:22
31 oct. 2010 à 15:22
Super, good job. Il ne me reste plus qu'à l'intégrer dans une boucle pour parcourir une liste.
Merci encore,
Rico
Merci encore,
Rico