TooFatBoy
XLDnaute Barbatruc
Bonjour,
J'ai récupéré un fichier Excel dans lequel il y a une macro dont j'ai bien compris le but (séparer nom et prénom d'une colonne en deux colonnes), mais dont je ne pige pas exactement le fonctionnement.
J'ai une plage F13:F38 dont chaque cellule contient, soit rien, soit du texte au format "NOM Prénom".
La macro me permet d'obtenir les noms en colonne F et les prénoms en colonne G.
Pour cela elle utilise l'instruction TextToColumns :
Même si ça fonctionne parfaitement, je ne suis pas certain que les valeurs dans les Array du FieldInfo soient correctes.
Si j'ai bien compris, Array(x,2) veut dire que le champ en question, une fois extrait de la chaîne originelle, sera traité comme étant du simple texte.
Mais que représente la première valeur de l'Array (ici la valeur "x", dans "Array(x,2)") ???
Je crois comprendre que, si je travaille sur des champs de longueurs fixes (par exemple 5 caractères pour le champ n°1, 3 caractères pour le champ n°2, etc.), alors le "x" est le numéro du caractère de la chaîne originelle à partir duquel ledit champ doit être extrait (et est aussi la limite de fin du champ précédent).
Avec MARTIN Gilbert et SCHMITT Helmut,
Array(Array(0,2),Array(6,2)) doit me donner respectivement
"MARTI" "N Gilbert" et "SCHMI" "TT Helmut".
Or ici je ne travaille pas sur des champs de longueurs fixes, mais sur des champs séparés par une espace (donc de longueurs potentiellement variables).
Le "x" représente-t-il toujours le n° du caractère de la chaîne originelle à partir duquel une espace est cherchée ? (visiblement non...)
Quelle valeurs faudrait-il mettre dans les Array ?
Et question subsidiaire : le FieldInfo est-il ici nécessaire, vu qu'on utilise l'espace comme séparateur et qu'il n'y a qu'une seule et unique espace dans chaque chaîne ?
J'ai récupéré un fichier Excel dans lequel il y a une macro dont j'ai bien compris le but (séparer nom et prénom d'une colonne en deux colonnes), mais dont je ne pige pas exactement le fonctionnement.
J'ai une plage F13:F38 dont chaque cellule contient, soit rien, soit du texte au format "NOM Prénom".
La macro me permet d'obtenir les noms en colonne F et les prénoms en colonne G.
Pour cela elle utilise l'instruction TextToColumns :
VB:
.Range("F13:F38").TextToColumns Destination:=.Range("F13:F38"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, _
FieldInfo:=Array(Array(1, 2), Array(2, 2)), TrailingMinusNumbers:=True
Même si ça fonctionne parfaitement, je ne suis pas certain que les valeurs dans les Array du FieldInfo soient correctes.
Si j'ai bien compris, Array(x,2) veut dire que le champ en question, une fois extrait de la chaîne originelle, sera traité comme étant du simple texte.
Mais que représente la première valeur de l'Array (ici la valeur "x", dans "Array(x,2)") ???
Je crois comprendre que, si je travaille sur des champs de longueurs fixes (par exemple 5 caractères pour le champ n°1, 3 caractères pour le champ n°2, etc.), alors le "x" est le numéro du caractère de la chaîne originelle à partir duquel ledit champ doit être extrait (et est aussi la limite de fin du champ précédent).
Avec MARTIN Gilbert et SCHMITT Helmut,
Array(Array(0,2),Array(6,2)) doit me donner respectivement
"MARTI" "N Gilbert" et "SCHMI" "TT Helmut".
Or ici je ne travaille pas sur des champs de longueurs fixes, mais sur des champs séparés par une espace (donc de longueurs potentiellement variables).
Le "x" représente-t-il toujours le n° du caractère de la chaîne originelle à partir duquel une espace est cherchée ? (visiblement non...)
Quelle valeurs faudrait-il mettre dans les Array ?
Et question subsidiaire : le FieldInfo est-il ici nécessaire, vu qu'on utilise l'espace comme séparateur et qu'il n'y a qu'une seule et unique espace dans chaque chaîne ?