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 :

VARIABLE public (CS as workbook) ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    technicien EN
    Inscrit en
    Juin 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien EN
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 13
    Par défaut VARIABLE public (CS as workbook) ?
    bonjour,
    Objectif principale de ma demande: accélérer la sauvegarde de données ...

    à partir de mon classeur principal, je souhaite coller des données copiées dans un feuille dédié à la saisie("depot1") et dans une feuille ("listing final") d'un classeur de sauvegarde qui peut ( lorsque l'utilisateur le souhaite être enregistre-sous ....date et heure ).

    pour ce :
    • j'ai déclaré les variables public CS et fichierSAUVE_choisi ( dernier classeur sauvegardé )
      j'ai définie la variable cs qui est le classeur de sauvegarde choisi par l'utilisateur a l'aide d'une aplication.getopenfilename




    code thisworbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public fichierSAUVE_choisi As String
    Public CS As Workbook
    Public Sub Workbook_Open()
     
    'Dim fichierSAUVE_choisi As String
    'Dim cs As Workbook
    MsgBox (" selectionner la dernière savevegarde ..")
     
    Call ouvrir_sauv  'appel de la macro qui ouvre le fichier ( 1feuille ("listing final") dans le classeur de sauvegarde )
     
    Sheets("ACCEUIL").Activate
     
    End Sub
    code module 2 où se trouve la macro ouvrir_sauv

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public fichierSAUVE_choisi As String
    Public CS As Workbook
     
    Public Sub ouvrir_sauv()
    fichierSAUVE_choisi = Application.GetOpenFilename("Excel Files (*.xlsx), .xlsx", , "Sélectionner la caisse où se trouve la liste") ' ouvre une fenetre ouvrir avec parcourir pour selectionner un fichier xlsx
      'import__export.Hide
     
    Set CS = Application.Workbooks.Open(fichierSAUVE_choisi)  ' je determine le nom du classeur ( variable public )
     
    'Application.Workbooks.Open
    End Sub
    jusque là , mon classeur principal et le classeur derniere sauvegarde ( choisi par utilisateur) s'ouvrent bien


    MAIS il semble que la variable public CS ne fonctionne pas ( erreur en ligne 19 )dans ce code d'un module 1:
    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
    Public fichierSAUVE_choisi As String
    Public CS As Workbook
     
     
    Sub enregisterdepot1()
     
    Application.ScreenUpdating = False
     
    If Range("B11").value = "" Or Range("C11").value = "" Or Range("D11").value = "" Or Range("E11").value = "" Or Range("F11").value = "" Or Range("I11").value = "" Then
                                MsgBox "ATTENTION, des cases jaunes n'ont pas été renseignées"
                                   Exit Sub
       Else
            Range("B11:I20").Copy
            'Selection.Copy
     
                Worksheets("listing final").Cells(Rows.Count, "B").End(xlUp)(2).PasteSpecial (xlValues)
    '*******************************
     
                CS.Worksheets("listing final").Cells(Rows.Count, "B").End(xlUp)(2).PasteSpecial (xlValues)    '**********************PROBLEME avecla variable CS : message d'erreur 91 :variable objet ou variable bloc with non definie ........
     
     
    '*********************************************************
            Workbooks("caisse_principale_import2.xlsm").Sheets("listing final").Visible = True
            Sheets("listing final").Select
     
     
            Call initialise_DEPOT_1
     
     
     
     
            Range("B11").Select
            Application.ScreenUpdating = True
                    Sheets("listing final").Visible = False
     
     End If
     
    End Sub

    je ne ne comprends pas pourquoi ...

    merci beaucoup pour votre aide...

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    tes variables publiques doivent être déclarées qu'une seule fois, dans un module Standard.
    eric

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Une variable publique ne doit être déclarée qu'une seule fois dans un seul module !

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