Sélection de toutes les cellules non vides et coller ds Notepad

Fermé
AL - 18 juil. 2017 à 16:12
 AL - 18 juil. 2017 à 18:42
Bonjour,

J'essaie de faire une macro qui sélectionne toutes les cellules non-vides de la colonne A seulement et qui les copie dans un fichier Notepad. Voici ce que j'ai fait:

-------------------------------------------------------------------------------------------------
Public Sub XLRangeToNotepad()

Dim iPtr As Integer
Dim sFileName As String
Dim intFH As Integer
Dim oCell As Range

sFileName = "C:\Users\vB\Desktop\Test \TEXTE.txt"
Lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Close

Sheets("Feuil2").Select
intFH = FreeFile()
Open sFileName For Append As intFH

For Each oCell In Range("A1:A110000")
Print #intFH, oCell.Value
Next oCell

Close intFH


End Sub
--------------------------------------------------------------------------------------------------

J'ai besoin de répéter cette actions plusieurs fois et le nombre de cellules non-vides total dans la colonne A varie souvent. Pour l'instant, je ne réussis qu'à sélectionner le range A1:A110000 qui est un peu plus long que ce que j'ai besoin, ce qui copie plusieurs lignes vides dans Notepad. Et rend l'utilisation de ce fichier plus difficile par la suite.

Merci beaucoup à l'avance de votre aide!!

AL


A voir également:

1 réponse

Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
18 juil. 2017 à 17:53
Bonjour,

Essaie avec ce code :

Public Sub XLRangeToNotepad()

 Dim iPtr As Integer
 Dim sFileName As String
 Dim intFH As Integer
 Dim oCell As Range
 Dim LastRow As Integer

 sFileName = "C:\Document\TEXTE.txt"
 LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

 Sheets("Feuil2").Select
 intFH = FreeFile()
 Open sFileName For Append As intFH

 For Each oCell In Range("A1:A" & LastRow)
    If (oCell.Value <> "") Then
        Print #intFH, oCell.Value
    End If
 Next oCell

 Close intFH


End Sub


K
0
Bonjour Merci de votre aide. Quand je fais rouler la macro le message d'erreur suivant apparaît : Erreur d'exécution 6 Dépassement de capacité.

Que puis-je faire pour éviter cette erreur?

Merci encore!
0
Finalement j'ai trouvé!

Il suffit de remplacer Dim LastRow As Integer par Dim LastRow As Long.

La macro fonctionne comme un charme, je vous en remercie!!
0