VBA - Excel : comment executer un texte de marco inclus dans une variable string

Signaler
Messages postés
2
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
11 février 2010
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Tout d'abord, merci aux tenanciers de ce lieu, c'est une mine d'informations !

Etant un piètre développeur en herbe en VBA / Excel, je bloque sur un problême qui ne doit pas être bien compliqué à résoudre:

Présentation du cas:
Je travaille sur une importation de fichier texte puis un découpage (via TexttoColumns) en utilisant une suite "array".
Cette suite du style :
Array(Array(0, 2), Array(1, 2), Array(3, 2), Array(6, 2))
sera dynamique car j'ai en amont du découpage une reconnaissance de la structure de découpage dans un tableau annexe.

Pour palier au problême du Array dynamique, je reproduis (via une boucle) la syntaxe complète du futur contenu du parametre "Array( ... ) ce qui me donne quelque chose comme ça :

avec comme valeur de "syntaxperso" (type string):
syntaxperso : "Array(0, 2), Array(1,2), Array(12,2), Array(15,2), Array(19,2), Array(24,2)"


que j'appelle dans la ligne:
Sub decoupesuivantligne(syntaxperso As String)

    Worksheets("feuil2").Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, FieldInfo:=Array(syntaxperso), TrailingMinusNumbers:=True       'termine la syntaxe de formule
    
    'Application.Run testfonction
End Sub



Problême :
l'execution de la ligne Selection.TextToColumns produit aucun découpage aque que si je reconstitue la commande avec les valeurs de "syntaxperso" dans la ligne "Selection.TextToColumns..." , le découpage se déroule correctement.

Est ce grave Docteur ?
Est il possible d'intégrer une variable dans les paramètres de la fonction TextToColumns ?
Aurais je oublié quelque chose ?

Merci d avance pour votre aide.
Cordialement

*d*B*k*

2 réponses

Messages postés
2
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
11 février 2010

Bonjour,

Je n'ai peut etre pas décrit la problèmatique correctement...
je vais simplifier ma question:

En ayant une variable "syntaxperso" (string) suivante :
syntaxperso="Array(0, 2), Array(1,2), Array(12,2), Array(15,2), Array(19,2), Array(24,2)"


Si j execute la ligne suivante, rien ne se passe:

sub mafonction()
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, FieldInfo:=Array(syntaxperso), TrailingMinusNumbers:=True
end sub


Avez vous une idée ?

Merci d avance

*d*B*k*
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Syntaxperso doit nécessairement être un Array ...
donc du genre
syntaxperso = array(array..., array...)=
Lis cette discussion :
http://www.vbfrance.com/forum/sujet-VBA-TEXTTOCOLUMNS-FORMULES_759152.aspx
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est