Bonjour,
j'ai réalisé un classeur de 4 pages et je souhaite exporter vers un fichier texte une plage(A : D) de l'une des 4 feuilles (celle nommée "badugi") toutes les minutes en supprimant les lignes vides.
Le code ci-dessous fonctionne seulement si je me trouve sur la feuille en question.
Si cette feuille n'est pas active donc que je suis sur un autre onglet j'ai une erreur d'exécution 1004: La méthode Select de la classe Range a échoué.
Merci de m'aider à trouver pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Sub enregistre() ' enregistre Macro DansUneMinute = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 60) Application.OnTime DansUneMinute, "enregistre" ' Active une plage de cellule sur la feuille "badugi" même si elle est non active Worksheets("badugi").Range("A1:F" & Sheets("badugi").Range("F65536").End(xlUp).Row).Select ' Déclaration variables Dim i, j, nl, nc As Integer Dim text As String ' Ouverture fichier d'enregistrement Open "C:\Users\Cédric\Desktop\Badugi\badugi.txt" For Output As #1 nc = Selection.Columns.Count nl = Selection.Rows.Count ' Boucle sur la selection For i = 1 To nl text = "" For j = 1 To nc ' ajout de la tabulation comme separateur If text <> "" Then text = text & Chr(9) text = text & ActiveWindow.RangeSelection.Next(i, j - 1) Next j ' Ecriture de la ligne dans le fichier si non vide If text <> "" Then Print #1, text Next i ' Fermeture fichier Close #1 ActiveWorkbook.Save End Sub
Lire la suite ...
VBA EXCEL 2007 problème de sélection de plage »
J'ai une réponse
Partager