C’est vrai
C’est pas faux
Version imprimable
C’est vrai
C’est pas faux
Incroyable ‼ Pas étonnant vu mon indication non suivie ! Dans mon post il n'est nullement question d'Array ! …
:fessee:Qui plus est dès ma première intervention :
Pourtant écrit en bon français, si ce n'est pas possible via Array alors pourquoi le conserver dans le code ?‼ :roll:
Sans oublier :
Là encore y-a-t-il ne serait-ce une instruction Array combinée avec Evaluate ? Non ‼
Réitéré une troisième fois :
Ben oui que renvoie donc l'instruction Array ?
Et que renvoie la pourtant unique ligne de code de ce post #59 ?
Rien qu'en les comparant dans la fenêtre Variables locales : la même chose, une matrice ‼
Donc pour conclure si Evaluate est utilisée pour renvoyer une matrice alors Array est superfétatoire, I N U T I L E ‼
Sauf pour imbriquer une matrice dans une matrice …
Et quand Transpose est vraiment nécessaire - inutile ici - comme pour toute fonction d'Excel,
autant l'intégrer dans Evaluate comme dans les démonstrations du lien …
___________________________________________________________________________________________________________
Lire … C'est s'investir ! Et bien lire, c'est réussir …
bonjour,
on s'en fou , :aie: ...vat te recoucher :aie:
@+JP
bonjour
depuis le début
on aurait pu lui dire tout simplement que
ne donne qu'un seul item dans l'arrayCode:truc=array("toto,titi,rififi")
et que si on eneleve les guillemets
donne 3 item mais ces items sont automatiquement des variables et que si elles ne sont pas renseignées elles valent rien (vide)Code:truc=array(toto,titi,rififi)
et donc
que pour partir d'une chaine car en fait ca en est une ,et en faire un array
il suffit de faire
et la effectivement on a bien un array de 3 item avec les valeurs toto,titi,riffiCode:tabl=split(("toto,titi,rififi",",")
le B a BA
Un coucou matinal. Ce coucou-là va s'exprimer par l'affichage de ce qui a été écrit :
Que ceux qui repèrent le paradoxe et qui en ont le temps et l'envie ouvrent à nouveau le fichier texte qui a été joint et l'examinent avec la plus grande attention ;)Citation:
je veux juste rendre dynamique les longueurs de champ pour un fichier délimité
Amitiés à tous.
Je me suis arrêté à un autre paradoxe : aucune donnée dans ses classeurs joints, inexploitables !
J'en profite pour rappeler la différence entre Array & Evaluate : leurs numéros de bornes ne sont pas les mêmes …
bonjour à tous
bon effectivement marc-l
je n'ai rien compris et mal jugé tes conseils
car les instruction suivantes sont suffisantes pour mon besoin
je disais que cela ne marchait pas j'avais un problème de syntaxe dans les formules et comme je suis encore loin d'avoir le niveau des différents intervenants sur ce postCode:
1
2
3 .TextFileColumnDataTypes = Evaluate("{" & FormatColonne & "}") .TextFileFixedColumnWidths = Evaluate("{" & TailleColonne & "}")
il faut bien que j'avoue avoir été un peu obtus.... :calim2:
encore désolé si j'en ai enervé certain
mais c'est par ces erreurs que l'on apprend
et je le répète encore un grand merci à tous
maintenant je comprends la fonction evaluate et array... ce qui est plus que constructif au final
david
Bien !
___________________________________________________________________________________________________________Connaître son ignorance est la meilleure part de la connaissance.
bonjour,
@unparia
c'est pourtant simple , ... çà dépend de la grosseur des tiers ... :ptdr: tu comprends Marius ?Citation:
je veux juste rendre dynamique les longueurs de champ pour un fichier délimité
@+JP
Bonjour,
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub test() Dim Cn As Object, rep As String, Cl, txt As String Cl = Split("4, 40, 40, 40, 40, 40, 40, 4, 10, 8, 2, 15, 4, 1, 8, 1, 3, 5, 2, 1, 12, 8, 2, 3, 1, 1, 2, 1, 4, 1, 1, 2, 1, 7, 1, 5, 1, 1, 10, 2, 1, 4, 10, 6, 8, 1, 6, 1, 1, 1, 1, 1, 1, 1, 3, 19, 8, 1, 1, 10, 4, 4, 32, 20, 1, 4, 7, 2, 4, 5, 1, 206, 300, 32, 32, 5, 30, 5, 45, 50, 38, 5", ",") txt = "[F.CSV]" & vbCrLf & _ "ColNameHeader=false" & vbCrLf & _ "Format=FixedLength" & vbCrLf For i = 0 To UBound(Cl) txt = txt & "Col" & (i + 1) & "=C" & i & " Text Width " & Cl(i) & "" & vbCrLf Next Debug.Print txt rep = "C:\MyRepertoire" If rep = "" Then Exit Sub Set Cn = CreateObject("ADODB.Connection"): Cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & rep & ";Extended Properties=""Text;HDR=No;FMT=FixedLength"";") NewFichierTxt rep & "\schema.ini", Replace(txt, "F.CSV", "FICHIER_TEXTE.txt") ThisWorkbook.Sheets("Feuil1").Range("A1").CopyFromRecordset Cn.Execute("SELECT * FROM [FICHIER_TEXTE#txt]") Kill rep & "\schema.ini" End Sub Private Sub NewFichierTxt(Fichier, txt) Dim fso, NewFichier Set fso = CreateObject("Scripting.FileSystemObject") Set NewFichier = fso.OpenTextFile(Fichier, 2, True) NewFichier.Write txt NewFichier.Close Set NewFichier = Nothing Set fso = Nothing End Sub