Re
•>thunder23
Ma question était plus précise
Vu qu'il y a plusieurs code VBA proposés et qui font tous la même chose: importer un fichier *.txt dans Excel.
Savoir si tu as choisi un des codes que j'ai proposé ou un de ceux de job75 m'aurait permis de savoir si je continue ou pas à suivre la discussion
Même conseil que celui précédemment donné'importation se fasse sur une feuille spécifique du classeur et que les données txt puissent se mettre à la suite si il y a déjà des données ou que je puisse les remplacer le tout ça serait parfait
Alors voyez ce dossier (3 ter) et la fin de la macro :je ne veux pas que ça supprime ce qu'il y a déjà.
'---restitution---
Application.ScreenUpdating = False
With Feuil1 'CodeName à adapter
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
lig = .UsedRange.Row + .UsedRange.Rows.Count
With .Cells(lig, 1).Resize(n)
.Value = b
.TextToColumns .Cells(1), xlDelimited, Tab:=True, DecimalSeparator:="." 'commande Convertir
End With
With .Rows(lig).Resize(, .UsedRange.Columns.Count)
.Interior.ColorIndex = 6 'jaune
.Font.Bold = True 'gras
Application.Goto .Cells(1), True 'cadrage
End With
.Columns.AutoFit
End With
Alors voyez ce dossier (3 ter) et la fin de la macro :
VB:'---restitution--- Application.ScreenUpdating = False With Feuil1 'CodeName à adapter If .FilterMode Then .ShowAllData 'si la feuille est filtrée lig = .UsedRange.Row + .UsedRange.Rows.Count With .Cells(lig, 1).Resize(n) .Value = b .TextToColumns .Cells(1), xlDelimited, Tab:=True, DecimalSeparator:="." 'commande Convertir End With With .Rows(lig).Resize(, .UsedRange.Columns.Count) .Interior.ColorIndex = 6 'jaune .Font.Bold = True 'gras Application.Goto .Cells(1), True 'cadrage End With .Columns.AutoFit End With
Sub test()
Dim tout As String, x, fichier As String
fichier = "C:\Users\polux\DeskTop\bdd.txt"
x = FreeFile: Open fichier For Binary Access Read As #x: tout = String(LOF(x), " "): Get #x, , tout: Close #x
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText tout: .PutInClipboard: End With
With ActiveSheet: .Cells(1).Select: .Paste: End With
End Sub
Votre code n'est probablement pas bon, voyez ce dossier (4) et la macro du bouton RAZ :j'ai un petit soucis, j'ai fait en sorte que le fichier, quand on change d'année (car ce fichier sera annualisé) ça efface toute les données de la feuille
Sub RAZ()
If MsgBox("Etes-vous sûr de vouloir effacer toutes les données ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
With Feuil1 'CodeName à adapter
.Rows("2:" & .Rows.Count).Delete
End With
End Sub
Votre code n'est probablement pas bon, voyez ce dossier (4) et la macro du bouton RAZ :
Les 2 boutons ont la propriété "Ne pas déplacer ou dimensionner avec les cellules".VB:Sub RAZ() If MsgBox("Etes-vous sûr de vouloir effacer toutes les données ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub With Feuil1 'CodeName à adapter .Rows("2:" & .Rows.Count).Delete End With End Sub
Salut patricktoulon.
Votre code n'est probablement pas bon, voyez ce dossier (4) et la macro du bouton RAZ :
Les 2 boutons ont la propriété "Ne pas déplacer ou dimensionner avec les cellules".VB:Sub RAZ() If MsgBox("Etes-vous sûr de vouloir effacer toutes les données ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub With Feuil1 'CodeName à adapter .Rows("2:" & .Rows.Count).Delete End With End Sub
Salut patricktoulon.
.ClearContents
PuisJe viens de le tester et ça fonctionne par contre j'ai remarqué que ça créer une plage dans le gestionnaire de nom, est-ce qu'il y a un moyen que ça ne créer pas de plage à chaque action de la macro?
Au départ, il ne fallait pas de plages nommées, et désormais il y en a...mais le seul problème est que j'ai nommé des plages sur cette feuille
Bonsoir le fil, thunder23, job75, patricktoulon
Puis
Au départ, il ne fallait pas de plages nommées, et désormais il y en a...
??
ClearContents ne va pas si comme je le fais on colore des lignes.C'est que j'utilise le codepour effacer.VB:.ClearContents
ClearContents ne va pas si comme je le fais on colore des lignes.
Et avec des plages nommées à ne pas supprimer c'est du n'importe quoi !
J'ai testé la méthode proposée par patricktoulon au post #36 :
- la durée d'exécution est à peu près la même que celle de mon fichier (4)
- les dates en colonne A ne sont pas correctes, la dernière date est le 04/11 au lieu du 11/04.
C'est une blague ?J'étais en train de repenser par rapport aux plages, d'après se que je comprends il est possible de les nommer quand on importe les données d'un fichier .txt ?