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é.
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
Merci de m'aider à trouver pourquoi.
Lire la suite ...
VBA EXCEL 2007 problème de sélection de plage »
J'ai une réponse