Probleme rapide (erreur de syntaxe)

  • Initiateur de la discussion Initiateur de la discussion Gordon
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Gordon

Guest
Bonjour a tous

Alors je résume mon problème.
Je veux automatiser la séparation d'un fichier *.csv de 436 valeurs en 3 pages d'un nombre de colonnes choisi par l'utilisateur sous excel.
Pour cela j'ai besoin dans un module donné de faire référence à un autre module (module4) pour automatiser le remplissage d'un array() avec une série de boucles comme celle qui suit :

For i = 1 To CStr(Cells(7, 3))
Module4.line(63+i) = "1, _"
Next i

Seulement il ya une erreur dans la ligne 2 de ma boucle.
Alors si quelqu'un pouvait me donner la bonne syntaxe, ce serait sympa.
Merci d'avance !
 
Salut,

Pas trés clair ce que tu demandes "pour automatiser le remplissage d'un array()" tu peux passer par une fonction qui te renvoie un tableau.
Sinon pour mofifier des lignes dans un module dasn le classeur actif

with activeworkbook.vbproject.vbcomponents("Module4").codemodule

For i = 1 To Cells(7, 3)
.deletelines 63+i
.insertlines 63+i,"1, _"
next i

Mets un exemple ...

A+++

Lien supprimé
 
Salut Zon et merci,

En tt cas bien que mon problème n'ait pas été posé le plus clairement possible, ta réponse m'aide fortement.
En fait dans ce fameux module4, j'arrive a la ligne 64 à la fin de cette commande : ("alldatas1" est la première feuille dans laquelle je sépare mes 436 valeurs)( C3 la directory) (F3 le nom du fichier)

Sheets("alldatas1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" + Format(Sheets("feuil1").Range("C3").Value) + Format(Sheets("feuil1").Range("F3").Value) + ".csv", Destination:=Range("A2"))
.Name = "datas"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False 'line 50
.TextFileColumnDataTypes = Array(1, _




Maintenant dans un autre module "module6" j'ai besoin de remplir l'array de mon "module4". Et c'est la que j'utilise ta commande :

With ActiveWorkbook.VBProject.vbcomponents("Module4").codemodule

For i = 1 To Cells(7, 3)
.deletelines 63 + i
.insertlines 63 + i, "1, _"
Next i

End With


(puis je fais une derniere ligne pour fermer l'array)
Ici le contenu des cellules (7,3) vaut 62 (nobmre choisi par l'utilisateur entre 1 et 256).


Nouveau problème : On ne peut faire que 25 retours à la ligne.


(en core un truc , en accumulant plusieurs boucles d'affilée pour remplir mon module4, l'array obtenu doit contenir toutes les données suivantes:

(ceci est juste un modèle, je sais pas pourquoi, mais les endroits occupés paar les "1" correspondent aux valeurs parmi les 436 existantes qu'il faut mettre dans la feuille ("alldatas1")

Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9 _
, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)


Voila pour l'exemple que tu m'as demandé.
Merci de ton aide, et si t'es arrivé jusque là, et que t'as le temps de me répondre, je serais ravi de savoir si t'as une idée pour le nouveau problème.
Aller merci encore!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour