Bonsoir j'ai un problème avec la macro suivante qui désactive le pavé numérique quand elle s'éxécute. Cette macro ouvre un fichier .txt et copie l'ensemble de son contenu dans le presse papier. Quelqu'un pourrait-il m'aider ?
Sub OuvrirASSUAvecBlocNotes()
Dim CheminFichier As String
Dim ClasseurActuel As Workbook
Dim DLU As Integer
CheminFichier = "C:\Users\manep\Downloads\ASSU.txt" ' Remplacez par le chemin de votre fichier
' Vérifiez si le fichier existe
If Dir(CheminFichier) <> "" Then
' Ouvrez le fichier avec le Bloc-notes
Shell "notepad.exe " & CheminFichier, vbNormalFocus
'Application.Wait (Now + TimeValue("00:00:01"))
Application.Wait (Now + 0.000007)
'Envoyez des touches Ctrl+A pour sélectionner tout le texte
Application.SendKeys "^a", True
Application.SendKeys "^c", True
Else
MsgBox "Le fichier n'existe pas.", vbExclamation
End If
End Sub
Bonsoir.
Il est possible en VBA de lire un fichier texte dans un tableau dynamique. Mais bien sûr, pour ne plus avoir à le copier dans le presse-papier, il faudrait savoir où vous le colliez ensuite …
Sinon je te donnerai un code pour rétablir le clavier numérique après des Sendkeys qui le changent.
Edit: Mais c'est sûr que le mieux est de lire le fichier texte directement dans le code VBA.
A tout hasard je joins un fichier texte qui contient du code pour lire et écrire des fichiers texte codés en ANSI ou UTF-8.
Pièces jointes
VBA Lire et écrire dans un fichier Texte ANSI & UTF-8.txt
Bonsoir et merci du retour. je souhaite après le coller dans un fichier excel. Hormis la désactivation du pavé numérique, je ne sais pas pourquoi la macro copie les données des 7 premières lignes avec un format de date puis change le format pour les 7 lignes suivantes et rechange après pour les 7 dernières lignes. Voila la macro complète
Sub OuvrirASSUAvecBlocNotes()
Dim CheminFichier As String
Dim ClasseurActuel As Workbook
Dim DLU As Integer
CheminFichier = "C:\Users\manep\Downloads\ASSU.txt" ' Remplacez par le chemin de votre fichier
' Vérifiez si le fichier existe
If Dir(CheminFichier) <> "" Then
' Ouvrez le fichier avec le Bloc-notes
Shell "notepad.exe " & CheminFichier, vbNormalFocus
Application.Wait (Now + 0.000007)
'Envoyez des touches Ctrl+A pour sélectionner tout le texte
Application.SendKeys "^a", True
Application.SendKeys "^c", True
Nickel ça marche au top par contre j'ai toujours mon problème de format sur la première colonne de date : le format change dans l'export excel (voir macro complète ci-dessous)
Sub OuvrirASSUAvecBlocNotes()
Dim CheminFichier As String
Dim ClasseurActuel As Workbook
Dim DLU As Integer
CheminFichier = "C:\Users\manep\Downloads\ASSU.txt" ' Remplacez par le chemin de votre fichier
' Vérifiez si le fichier existe
If Dir(CheminFichier) <> "" Then
' Ouvrez le fichier avec le Bloc-notes
Shell "notepad.exe " & CheminFichier, vbNormalFocus
Application.Wait (Now + 0.000007)
'Envoyez des touches Ctrl+A pour sélectionner tout le texte
Mettez un format texte sur la colonne, puis reprenez la en transformant ces texte en date au moyen de la fonction CDate.
Comment sont séparées les colonnes dans le fichier texte ?
Pour des dates je ne sais pas, sans les données...
Il semble, d'après le cadrage que des dates soient en format texte (cadrées à gauche) et d'autres en format date (cadrées à droite).
J'allais dire ce que @Dranreb vient de publier, c.a.d. de reprendre les dates avec CDate et de formater la colonne avec le format date souhaité.
oui merci. Le passage au format texte ne marche pas. c'est comme si il m'avait mis les dates à partir de la huitième ligne en format Anglo-Saxon : mois/Jour/année ald jour/mois/année. Les dates au format texte devraient se suivre alors que ce n'est pas du tout le cas
Le mieux ce serait probablement d'importer convenablement le fichier texte à l'aide de la commande Fichier texte du groupe Données externes du menu Données.
Oui, on sait que lorsqu'on colle des textes dans des cellules Excel non muniee d'un format texte, il s'efforce d'y appliquer une interprétation anglo-saxonne.
Le mieux ce serait probablement d'importer convenablement le fichier texte à l'aide de la commande Fichier texte du groupe Données externes du menu Données.
J'ai essayé de le faire en enregistrant la macro mais elle ne marche pas. Macro ci-dessous. ll me met argument ou appel de procédure incorrect.
Sub Macro3()
'
' Macro3 Macro
'
Oui, on sait que lorsqu'on colle des textes dans des cellules Excel non muniee d'un format texte, il s'efforce d'y appliquer une interprétation anglo-saxonne.
J'ai mis au format texte les cellules avant d'éxécuter la macro et l'export de toutes les lignes se fait de la même façon : on progresse. ile me reste à retraiter la chaine de caractères.