EXCEL-VBA Extraction/Ajout de données

Philindy -  
ShaBoo Messages postés 406 Statut Membre -
Bonjour,

J'ai dans un tableau, une colonne (env 600 lignes) avec des données de ce type : 12+455 ou 1+000 ou 145+1789, etc...; Comment je peut récupérer les données à gauche du + pour les inscrire sur une autre colonne ?
Dans une autre colonne (env 800 lignes), j'ai des nombres de ce type : 45 ou 156 ou 899A ou 45N, etc..., je voudrais ajouter à gauche de ces nombres les caractères suivants (exemple) : 56 J0 automatiquement en gardant toujours 8 carctères dans la colonne. La différence se ferait avec le nombre de zéro après le J. Je n'arrive pas sous VBA.
Si quelqu'un pouvait m'aider, un grand merci d'avance. Simplement j'aimerais quand je clique sur une cellule "résultat", je vois le résultat et non la formule. MERCI
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. ShaBoo Messages postés 406 Statut Membre 50
     
    Bonjour,

    "Comment je peut récupérer les données à gauche du + pour les inscrire sur une autre colonne ?"

    Tu peux utiliser la fonction Split :

    Sub test()
        Dim a As Variant
        a = Split("12+455", "+" )
        MsgBox a(1)
    End Sub 


    "Dans une autre colonne (env 800 lignes), j'ai des nombres de ce type : 45 ou 156 ou 899A ou 45N, etc..., je voudrais ajouter à gauche de ces nombres les caractères suivants (exemple) : 56 J0 automatiquement en gardant toujours 8 carctères dans la colonne. La différence se ferait avec le nombre de zéro après le J"

    Je n'ai pas tres bien compris ce que tu veux exactement !!!
    0
  2. Philindy
     
    Merci de ton intêret

    Dans une autre colonne (env 800 lignes), j'ai des nombres de ce type : 45 ou 156 ou 899A ou 45N, 6, etc...,
    je voudrais ajouter, dans une nouvelle colonne, à gauche de ces nombres (ci-dessus) les caractères suivants (exemple) : 56 J0 automatiquement en gardant toujours 8 caractères dans la colonne. La différence se ferait avec le nombre de zéro après le J.
    Je n'arrive pas sous VBA.
    Exemple :
    56 J0045
    56 J0156
    56 J045N
    56 J0006
    Voila, j'espère mettre bien expliquer. MERCI
    0
    1. ShaBoo Messages postés 406 Statut Membre 50
       
      ex : "45"

      longueur de "45" = 2

      longueur de "56 J" = 4

      Nombre de "0" à ajouter :
      8 - 4 - 2 = 2

      => "00"

      Pseudo code :

      Dim iNbTotal as Integer 
      Dim iNbZero as Integer 
      Dim sZero as String
      Dim sVar as String
      Dim sVar2 as String
      Dim sVarRes as String
      Dim iLngVar as Integer
      Dim iLngVar2 as Integer
      
      sZero = ""
      
      iNbTotal = 8
      
      sVar = "45" 'la c'est en dur, il faudra mettre la valeur exacte
      
      sVar2 = "56 J"
      
      iLngVar = Len(sVar) 
      iLngVar2 = Len(sVar2) 
      
      iNbZero =  iNbTotal - iLngVar - iLngVar2
      
      Select Case iNbZero
         Case 1
             sZero = "0"
         Case 2
             sZero = "00"
         Case 3
             sZero = "000"
      End Select
      
      sVarRes = sVar2 & sZero & sVar
      
      MsgBox   sVarRes


      PS : à voir si il n'y a pas une méthode de remplissage avec un caractère donné pour un certain nombre de fois en vba. Cela couperait court au Select Case
      0