EXCEL-VBA Extraction/Ajout de données

Fermé
Philindy - 24 oct. 2007 à 12:01
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 - 24 oct. 2007 à 17:17
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
A voir également:

2 réponses

ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
24 oct. 2007 à 16:31
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
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
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
24 oct. 2007 à 17:17
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