IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Sélection plage feuille non active


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Sélection plage feuille non active
    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

  2. #2
    Membre actif Avatar de le_dilem
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2005
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2005
    Messages : 313
    Points : 236
    Points
    236
    Par défaut
    Si cette feuille n'est pas active donc que je suis sur un autre ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("badugi"). Select
    Je fume du thé et je reste éveillé, le cauchemar continue.

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Sans sélectionner les plages de données ou les feuilles
    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
    Sub enregistre()
    Dim i As Long, nl As Long
    Dim j As Integer, nc As Integer
    Dim strTexte As String
    Dim DansUneMinute As Date
    Dim plage As Range
     
    'DansUneMinute = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 60)
    'Application.OnTime DansUneMinute, "enregistre"
     
    Set plage = Sheets("badugi").Range("A1:F" & Sheets("badugi").Range("A65536").End(xlUp).Row)
       Open "C:\Users\Cédric\Desktop\Badugi\badugi.txt" For Output As #1
       nc = plage.Columns.Count
       nl = plage.Rows.Count
       For i = 1 To nl
          If Application.CountBlank(plage.Rows(i)) < nc Then
             For j = 1 To nc
                strTexte = strTexte & Chr(9) & plage.Cells(i, j)
             Next j
             Print #1, Mid(strTexte, 2)
             strTexte = ""
          End If
       Next i
       Close #1
    Set plage = Nothing
    ActiveWorkbook.Save
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour le_dilem, bonjour mercatog,


    le_dilem que j'écrive Worksheets ou Sheets, la macro s'exécute de la même manière.

    mercatog c'est exactement ce que je voulais et sur quoi je me suis cassé la tête tout le week-end

    Un grand merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Actualiser un TDC d'une feuille non active.
    Par Mrfreeze117 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2015, 13h26
  2. Utilisation du solver dans une feuille non active
    Par JonSnow dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2010, 14h27
  3. test sur une checkbox dans une feuille non active
    Par diude54 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/08/2009, 22h29
  4. Sélection et TListView non active
    Par user8 dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2008, 08h18
  5. ecrire dans une feuille non active d'excel
    Par baboo50 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/08/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo