J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le
faire.
Voici le code complet:
Public Sub LoadFile()
Dim strLine As String
Dim I As Long
Dim J As Long
Dim iLen As Integer
Dim iSh As Integer
Dim lL As Long
Dim sDelim As String
Dim MaxSize As Long
sDelim = Chr(9)
MaxSize = 65000
I = 0
Open "C:\MyDir\MyFile.txt" For Input As #5
Do While Not EOF(5)
iSh = (I / MaxSize) + 1
lL = I Mod MaxSize
Line Input #5, strLine
If Right(strLine, 1) <> sDelim Then
strLine = Trim(strLine) & sDelim
End If
J = 0
Do While Len(strLine) > 1
iLen = InStr(strLine, sDelim)
Worksheets("Sheet" & iSh).Offset(lL, J).Value = _
Trim(Left(strLine, iLen - 1))
strLine = Trim(Right(strLine, Len(strLine) - iLen))
J = J + 1
Loop
I = I + 1
Loop
Close #5
End Sub
Merci beaucoup de votre aide à l'avance
Martin
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Papy Bernard
Slt,
De "Martin"
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Plutôt que de pisser de la ligne, tu aurais plus court chemin de te mettre à un SDBD.
-- A+ Papy Bernard (RTCien malgré lui)
Slt,
De "Martin"
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
pas
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Bonjour *Papy Bernard* | Plutôt que de pisser de la ligne,
Qui dit que telle est son intention ?
| tu aurais plus court chemin de te | mettre à un SDBD.
Il pourrait aussi l'importer dans un traitement de texte, mais ce n'est pas le sens de la question (dont je ne connais pas la réponse).
-- Ricky
anonymousA
bonjour,
je ne connais pas le code, mais je confimre que la propriété offset ne s'applique qu'à l'objet range donc rencontre une erreur d'appli avec l'objet worksheet. Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO. 'If the number of records exceeds 65536 then it splits it over more than one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String Dim lngCounter As Long Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open file dialog Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt 'We need to split this into path and file name Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
bonjour,
je ne connais pas le code, mais je confimre que la propriété offset ne
s'applique qu'à l'objet range donc rencontre une erreur d'appli avec
l'objet worksheet.
Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de
lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO.
'If the number of records exceeds 65536 then it splits it over more than
one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String
Dim lngCounter As Long
Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name
strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", ,
"Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open
file dialog
Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt
'We need to split this into path and file name
Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le
faire.
Voici le code complet:
Public Sub LoadFile()
Dim strLine As String
Dim I As Long
Dim J As Long
Dim iLen As Integer
Dim iSh As Integer
Dim lL As Long
Dim sDelim As String
Dim MaxSize As Long
sDelim = Chr(9)
MaxSize = 65000
I = 0
Open "C:MyDirMyFile.txt" For Input As #5
Do While Not EOF(5)
iSh = (I / MaxSize) + 1
lL = I Mod MaxSize
Line Input #5, strLine
If Right(strLine, 1) <> sDelim Then
strLine = Trim(strLine) & sDelim
End If
J = 0
Do While Len(strLine) > 1
iLen = InStr(strLine, sDelim)
Worksheets("Sheet" & iSh).Offset(lL, J).Value = _
Trim(Left(strLine, iLen - 1))
strLine = Trim(Right(strLine, Len(strLine) - iLen))
J = J + 1
Loop
I = I + 1
Loop
Close #5
End Sub
Merci beaucoup de votre aide à l'avance
Martin
je ne connais pas le code, mais je confimre que la propriété offset ne s'applique qu'à l'objet range donc rencontre une erreur d'appli avec l'objet worksheet. Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO. 'If the number of records exceeds 65536 then it splits it over more than one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String Dim lngCounter As Long Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open file dialog Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt 'We need to split this into path and file name Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
anonymousA
Quelle tirade grandiose et qui fait beaucoup avancer le sujet.Pourquoi s'obstiner à venir sur ce forum pour pisser de la ligne en permanence sur le fait d'utiliser un logiciel de BDD plutot qu'Excel.
Par ailleurs, SDBB ou SGBD ?
Slt,
De "Martin"
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
Plutôt que de pisser de la ligne, tu aurais plus court chemin de te mettre à un SDBD.
-- A+ Papy Bernard (RTCien malgré lui)
Quelle tirade grandiose et qui fait beaucoup avancer le sujet.Pourquoi
s'obstiner à venir sur ce forum pour pisser de la ligne en permanence
sur le fait d'utiliser un logiciel de BDD plutot qu'Excel.
Par ailleurs, SDBB ou SGBD ?
Slt,
De "Martin"
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
Quelle tirade grandiose et qui fait beaucoup avancer le sujet.Pourquoi s'obstiner à venir sur ce forum pour pisser de la ligne en permanence sur le fait d'utiliser un logiciel de BDD plutot qu'Excel.
Par ailleurs, SDBB ou SGBD ?
Slt,
De "Martin"
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
Plutôt que de pisser de la ligne, tu aurais plus court chemin de te mettre à un SDBD.
-- A+ Papy Bernard (RTCien malgré lui)
Martin
Merci pour ta reponse, je vais tester
et oui j'avais bien copier le code!
Martin "anonymousA" a écrit dans le message de news: 42deaf6b$0$22308$
bonjour,
je ne connais pas le code, mais je confimre que la propriété offset ne s'applique qu'à l'objet range donc rencontre une erreur d'appli avec l'objet worksheet. Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO. 'If the number of records exceeds 65536 then it splits it over more than one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String Dim lngCounter As Long Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open file dialog Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt 'We need to split this into path and file name Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
Merci pour ta reponse, je vais tester
et oui j'avais bien copier le code!
Martin
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
42deaf6b$0$22308$8fcfb975@news.wanadoo.fr...
bonjour,
je ne connais pas le code, mais je confimre que la propriété offset ne
s'applique qu'à l'objet range donc rencontre une erreur d'appli avec
l'objet worksheet.
Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de
lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO.
'If the number of records exceeds 65536 then it splits it over more than
one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String
Dim lngCounter As Long
Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name
strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", ,
"Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open
file dialog
Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt
'We need to split this into path and file name
Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
pas
Je crois comprendre la propriété offset ne peut pas etre applique a
l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le
faire.
Voici le code complet:
Public Sub LoadFile()
Dim strLine As String
Dim I As Long
Dim J As Long
Dim iLen As Integer
Dim iSh As Integer
Dim lL As Long
Dim sDelim As String
Dim MaxSize As Long
sDelim = Chr(9)
MaxSize = 65000
I = 0
Open "C:MyDirMyFile.txt" For Input As #5
Do While Not EOF(5)
iSh = (I / MaxSize) + 1
lL = I Mod MaxSize
Line Input #5, strLine
If Right(strLine, 1) <> sDelim Then
strLine = Trim(strLine) & sDelim
End If
J = 0
Do While Len(strLine) > 1
iLen = InStr(strLine, sDelim)
Worksheets("Sheet" & iSh).Offset(lL, J).Value = _
Trim(Left(strLine, iLen - 1))
strLine = Trim(Right(strLine, Len(strLine) - iLen))
J = J + 1
Loop
I = I + 1
Loop
Close #5
End Sub
Merci beaucoup de votre aide à l'avance
Martin
Martin "anonymousA" a écrit dans le message de news: 42deaf6b$0$22308$
bonjour,
je ne connais pas le code, mais je confimre que la propriété offset ne s'applique qu'à l'objet range donc rencontre une erreur d'appli avec l'objet worksheet. Es-tu sur d'avoir bien copié le code ?
un exemple ci-dessous d'importation de fichier texte dont le nbre de lignes est supérieur à 65536.
Sub ImportLargeFile()
'Imports text file into Excel workbook using ADO. 'If the number of records exceeds 65536 then it splits it over more than one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String Dim lngCounter As Long Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open file dialog Application.ScreenUpdating = False
'This gives us a full path name e.g. C:folderfile.txt 'We need to split this into path and file name Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
ClémentMarcotte
Bonjour,
Tu peux regarder les 2 ou 3 macros toutes faites chez Frédéric Sigonneau:
http://frederic.sigonneau.free.fr/
ou pour aller direct sur la p(l)age:
http://frederic.sigonneau.free.fr/Formats.htm
"Martin" a écrit dans le message de news:%
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
Bonjour,
Tu peux regarder les 2 ou 3 macros toutes faites chez Frédéric Sigonneau:
http://frederic.sigonneau.free.fr/
ou pour aller direct sur la p(l)age:
http://frederic.sigonneau.free.fr/Formats.htm
"Martin" <tatoo905no@spamyahoo.ca> a écrit dans le message de
news:%23B9iorVjFHA.1044@tk2msftngp13.phx.gbl...
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne
pas
Je crois comprendre la propriété offset ne peut pas etre applique a
l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le
faire.
Voici le code complet:
Public Sub LoadFile()
Dim strLine As String
Dim I As Long
Dim J As Long
Dim iLen As Integer
Dim iSh As Integer
Dim lL As Long
Dim sDelim As String
Dim MaxSize As Long
sDelim = Chr(9)
MaxSize = 65000
I = 0
Open "C:MyDirMyFile.txt" For Input As #5
Do While Not EOF(5)
iSh = (I / MaxSize) + 1
lL = I Mod MaxSize
Line Input #5, strLine
If Right(strLine, 1) <> sDelim Then
strLine = Trim(strLine) & sDelim
End If
J = 0
Do While Len(strLine) > 1
iLen = InStr(strLine, sDelim)
Worksheets("Sheet" & iSh).Offset(lL, J).Value = _
Trim(Left(strLine, iLen - 1))
strLine = Trim(Right(strLine, Len(strLine) - iLen))
J = J + 1
Loop
I = I + 1
Loop
Close #5
End Sub
Merci beaucoup de votre aide à l'avance
Martin
Tu peux regarder les 2 ou 3 macros toutes faites chez Frédéric Sigonneau:
http://frederic.sigonneau.free.fr/
ou pour aller direct sur la p(l)age:
http://frederic.sigonneau.free.fr/Formats.htm
"Martin" a écrit dans le message de news:%
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
MPi
Salut Martin,
Et si tu ajoutais Range("A1") avant le Offset() Worksheets("Feuil" & iSh).Range("A1").Offset(lL, J).Value = ...
Est-ce que ça fonctionne mieux ?
Michel
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin
Salut Martin,
Et si tu ajoutais Range("A1") avant le Offset()
Worksheets("Feuil" & iSh).Range("A1").Offset(lL, J).Value = ...
Est-ce que ça fonctionne mieux ?
Michel
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536
données.
Je dois donc le faire importer sur plus d'une feuille.
J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet
worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le
faire.
Voici le code complet:
Public Sub LoadFile()
Dim strLine As String
Dim I As Long
Dim J As Long
Dim iLen As Integer
Dim iSh As Integer
Dim lL As Long
Dim sDelim As String
Dim MaxSize As Long
sDelim = Chr(9)
MaxSize = 65000
I = 0
Open "C:MyDirMyFile.txt" For Input As #5
Do While Not EOF(5)
iSh = (I / MaxSize) + 1
lL = I Mod MaxSize
Line Input #5, strLine
If Right(strLine, 1) <> sDelim Then
strLine = Trim(strLine) & sDelim
End If
J = 0
Do While Len(strLine) > 1
iLen = InStr(strLine, sDelim)
Worksheets("Sheet" & iSh).Offset(lL, J).Value = _
Trim(Left(strLine, iLen - 1))
strLine = Trim(Right(strLine, Len(strLine) - iLen))
J = J + 1
Loop
I = I + 1
Loop
Close #5
End Sub
Merci beaucoup de votre aide à l'avance
Martin
Et si tu ajoutais Range("A1") avant le Offset() Worksheets("Feuil" & iSh).Range("A1").Offset(lL, J).Value = ...
Est-ce que ça fonctionne mieux ?
Michel
Bonjour,
J'ai un fichier texte a importer dans excel qui contient plus que 65536 données. Je dois donc le faire importer sur plus d'une feuille. J'ai trouvé un code qui le fait mais une partie de ce code ne fonctionne pas
Je crois comprendre la propriété offset ne peut pas etre applique a l'objet worksheets, ce qui est normal, mais je ne trouve pas la syntaxe pour le faire. Voici le code complet:
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long
sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:MyDirMyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub Merci beaucoup de votre aide à l'avance Martin