Problem de variable

Bonjour à tous,

Un petit souci avec je pense ma déclaration de variable!!!

Je m'explique: J'ouvre un classeur "BD" à l'aide de Workbook_open, mais le problème ce trouve à la fermeture du classeur.

J'ai cette procédure

Private chemin As String

Private Sub Workbook_Open()
Dim sem As String

chemin = "M:\DOP DT\Bases Techniques Chauffage\COMPTEUR HORAIRE AGENTS\Semainier divers groupes\Données\BD"
sem = "Semaine " & Admin.Nsemaine

Sheets("Données").Visible = xlVeryHidden
Application.OnKey "^<", "Userform" 'Ctrl+w
ActiveWindow.Zoom = 76
Init

' Ouverture du dossier "base de données BD"

        On Error Resume Next
        Workbooks(chemin & ".xlsm").Activate
            If Err.Number <> 0 Then
            Workbooks.Open Filename:=chemin & ".xlsm", Password:="081278"
            ActiveWorkbook.Application.WindowState = xlMinimized
        End If
        On Error GoTo 0

Workbooks(sem & ".xlsm").Activate
ActiveWorkbook.Application.WindowState = xlMaximized

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

chemin = "M:\DOP DT\Bases Techniques Chauffage\COMPTEUR HORAIRE AGENTS\Semainier divers groupes\Données\BD"

Workbooks(chemin & ".xlsm").Close

Set gcolSecteur = Nothing

On Error Resume Next ' si une erreur ce passe

Dim oSh As Object
    For Each oSh In ThisWorkbook.Sheets
       If oSh.Name <> "Accueil " Then oSh.Visible = False
    Next oSh

If (Err.Number > 0) Then

     End If

ActiveWorkbook.Save

End Sub

A la fermeture, il me met "l'indice n'appartient pas à la selection"

Pourtant ce n'est la premiére!!!

Merci de votre aide.

Coco

Bonsoir

Sans fichier pour tester

Il manque le dernier anti-slash dans le chemin

Et comme nom de fichier ".xlsm" on a fait mieux

A vérifier ces points

Re Benzai

Un fichier en test

L'erreur me montre cette ligne :

Dans workbook_close

Workbooks(chemin & ".xlsm").Close

Merci

Coco

Bonsoir

Banzai64 a écrit :

Il manque le dernier anti-slash dans le chemin

Et comme nom de fichier ".xlsm" on a fait mieux

A tester : Penses à modifier le chemin dans la procédure WorkBook_Open

Private chemin As String

Private Sub Workbook_Open()

  ' chemin = "C:\Users\Nicolas\Desktop\BD"
  chemin = ThisWorkbook.Path & "\"

  ' Ouverture du dossier "base de données BD"
  On Error Resume Next
  Workbooks(chemin & "BD.xlsm").Activate
  If Err.Number <> 0 Then
    Workbooks.Open Filename:=chemin & "BD.xlsm", Password:="081278"
    ActiveWorkbook.Application.WindowState = xlMinimized
  End If
  On Error GoTo 0

  Workbooks("Test1" & ".xlsm").Activate
  ActiveWorkbook.Application.WindowState = xlMaximized

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Workbooks("BD.xlsm").Close
  ActiveWorkbook.Save
End Sub

Bonsoir Banzai,

Merci pour ton aide, comme d'habitude tes réponse fonctionne....

Merci

Juste une question quelle est la différence en :

chemin = ThisWorkbook.Path & "\"

et directement avec le chemin d’accès?

chemin = "C:\Users\Nicolas\Desktop\BD"

Merci encore.

Cordialement Coco

Bonjour

Différence

Le premier est variable, il est définit par l'emplacement du fichier (sauvegardé) qui contient la macro

Le second est statique : Peu importe où est le fichier sauvegardé ce chemin sera toujours le même

Je te remercie Banzai et à tous le forum .

Rechercher des sujets similaires à "problem variable"