Manip de Excel
Résolu
Bonjour tout le monde !
Dans une cellule j'ai une chaine de caractére. Au début de celle-ci, on a un nombre de chiffre pouvant allez de 1 à 4. Par exemple: 240Awaiting ou 0System OK ou encore 1439connec
Voici mon probléme sur excel :
J'aimerai extraire les chiffres du début variant entre 1 et 4 chiffres, ou fractionner la cellule avec d'un coté le chiffre et de l'autre les lettres.
Enfin bon .... un moyen pour isoler ces chiffres qui peuvent varier de 1 à 4 chiffres
Merci par avance.
JD
Dans une cellule j'ai une chaine de caractére. Au début de celle-ci, on a un nombre de chiffre pouvant allez de 1 à 4. Par exemple: 240Awaiting ou 0System OK ou encore 1439connec
Voici mon probléme sur excel :
J'aimerai extraire les chiffres du début variant entre 1 et 4 chiffres, ou fractionner la cellule avec d'un coté le chiffre et de l'autre les lettres.
Enfin bon .... un moyen pour isoler ces chiffres qui peuvent varier de 1 à 4 chiffres
Merci par avance.
JD
Configuration: Windows XP Internet Explorer 7.0
5 réponses
-
bonjour,
Voilà un lien avec un exemple : https://www.cjoint.com/?eDmr5xzlAe
Il faut faire "exécuter macro" pour lancer la manip
;o)
polux-
Bonjour Polux31,
J'ai exactement le même problème, mais le lien vers l'exemple ne fonctionne plus.
J'ai une liste de numéros à 15 chiffres, sans espace entre chaque, et je souhaite séparer dans 2 colonnes, les 13 premiers des 2 derniers.
Peux-tu me faire bénéficier te lumières en macro !!!
d'avance merci.
kran777. -
@KRAN777Bonjour,
On admet que les chiffres sont en colonne A, on va mettre les 13 premiers en colonne B et les 2 derniers en colonne C.
Public Sub sepChiffre() Dim ws As Worksheet 'déclaration d'un objet feuille Dim lig As Long 'déclaration d'une variable pour parcourir les lignes Dim str As Variant 'déclaration d'une variable pour recevoir le contenu de la cellule lig = 1 'On met ici le numéro de la première ligne à tester Set ws = Worksheets(1) 'Objet contenant la 1ère feuille (Feuil1) ' With ws 'Faire tant que la cellule est non vide While .Range("A" & lig).Value <> "" 'récupération de la valeur de la cellule str = CStr(.Range("A" & lig).Value) 'utilisation de la fonction Mid() pour découper la chaîne et affection du résultat .Range("B" & lig).Value = Mid(str, 1, 13) .Range("C" & lig).Value = Mid(str, 14, 2) 'On passe à la ligne suivante lig = lig + 1 ' Wend ' End With ' End Sub
Voilà clique ici pour avoir un exemple.
;o) -
@Polux31De manière mesurée je dirais : la macro fonctionne parfaitement, merci pour le coup de main.
Mais là ça m'enlève une ENORME épine du pied, donc je dis :
Merci Polux, t'es un dieu, tu me sauves la vie.
Kran777 -
@KRAN777Heuuuuuuuuu faut pas trop en faire non plus ... le but du forum c'est apporter de l'aide, pas de faire des miracles, qui effectivement sont du ressort des divinités. Chacun son job. :DDD
Content de t'avoir rendu service.
Bonne continuation.
;o)
-
-
Merci Polux pour ta rapidité et de mettre un exemple joint.
Mais comment tu fais avec ce lien pour faire "lancer la macro"
Est ce que je pourrai avoir les données de cette macro pour l'intégrer dans mon excel.
Merci pour tout
JD -
Cliques sur le lien que je t'ai donné. Enregistre le fichier sur ton disque dur (mes documents\mes fichiers reçus... par exemple). Ouvres le fichier et fais Alt+F11. L'éditeur Visual Basic va s'ouvrir, double clique sur module1, il y a le code de la macro. A toi de l'adapter en fonction de ton application.
-
Merci merci Polux la macro marche tip-top
@++
JD -
de rien, content que ça résolve ton problème.
N'oublie pas de mettre "résolu"
,o)
polux