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:
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:
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:
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...