fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr en fr fr fr fr fr fr fr fr fr fr cs fr fr fr fr fr fr fr fr fr fr fr fr fr fr en en fr fr fr fr fr en fr nl fr fr fr fr fr fr fr fr en fr en fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr en en fr de fr fr fr fr fr fr fr fr fr fr en fr es fr fr ru en fr fr de fr fr fr fr en eo fr fr fr fr fr en en fr de fr fr fr fr fr fr fr en fr fr fr en en fr en fr fr en en en fr
Lorsque je colle le fichier .txt manuellement tout fonctionne correctement, mais lorsque je veux le faire via macro un énorme décalage se fait sur ma page.
J'ai l'impression que le fichier que je colle ne remplit pas les cases de ma feuille, mais en ajoute ce qui fait un décalage. Voici un exemple avec deux photos la 1ère correspond au collage manuel du fichier .txt, la seconde lorsque j'utilise ma macro :
Manuel : je colle mes données et l'interface à droite qui débute sur la colonne U n'est pas décalée
Avec ma macro : tout est décalé, la case qui était avant A1 (COLLER ICI LES DONNEES) se retrouve en N1
Sub essai() Dim Fichier Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") If Fichier   False Then Worksheets("Données brutes").QueryTables.Add("TEXT;" & Fichier, Destination:=Range("A1:M300")).Refresh Else MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte !" End If End Sub
Les fichiers .txt collés vont toujours de A à M et peuvent faire maximum 300 lignes (~200/250 habituellement).
Auriez-vous une idée sur commun empêcher le décallage ?
Le 27/02/2019 à 17:32
J'ai l'impression que c'est le caractère utilisé pour décaler ton texte dans le .txt (tabulation je suppose) qui pose problème...
Je ne vois pas comment éviter ce problème... Mais par contre je vois comment le contourner. Je te prépare un bout de code et je re
Edit : Voila le bout de code qui te permettrait de rapatrier toutes tes données en A en supprimant les colonnes insérées... A améliorer peut-être pour que le chiffre 20 que j'ai mis en fixe devienne variable.
Sub MacroDevery() ' ' MacroDevery Macro ' For Colonne = 2 To 20 CompteurSuppressions = 0 For Ligne = 1 To 300 'Rappatrie toutes les données de la colonne en cours en A If Cells(Ligne, Colonne)   "" Then Cells(Ligne, 1) = Cells(Ligne, 1) & Cells(Ligne, Colonne) CompteurSuppressions = CompteurSuppressions + 1 End If Next Ligne 'Supprime la colonne en cours s'il y a eu des suppressions If CompteurSuppressions   0 Then Columns(Colonne).Delete CompteurSuppressions = 0 End If Next Colonne ' End Sub
Le 28/02/2019 à 08:58
Bonjour Girodo, merci pour ta réponse et ta solution !
J'ai testé ta solution, et elle semble fonctionner si j'adapte le nombre de colonne. J'ai également trouvé une solution alternative qui fonctionne :
Sub Bouton2_Cliquer() Dim Fichier Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") If Fichier   False Then ' crée une requête sur le fichier texte et insère les champs ' dans la feuille "Feuil1" en partant de "A1" Worksheets("Feuil1").QueryTables.Add("TEXT;" & Fichier, Destination:=Range("A1:M300")).Refresh Else MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte !" End If Worksheets("Feuil1").Range("A1:M300").Copy ActiveWorkbook.Worksheets("Données brutes").Range("A1").PasteSpecial Paste:=xlPasteValues, Transpose:=False End Sub
J'ai juste copié mon fichier .txt sur une autre page pour ensuite coller le contenu sur ma page principale