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
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. bonjour,

    Voilà un lien avec un exemple : https://www.cjoint.com/?eDmr5xzlAe

    Il faut faire "exécuter macro" pour lancer la manip

    ;o)

    polux
    1. 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.
    2. @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)
    3. @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
    4. @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)
  2. 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
    1. 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.
      1. de rien, content que ça résolve ton problème.

        N'oublie pas de mettre "résolu"

        ,o)

        polux