Salut à tous,
Je viens chercher des cerveaux complémentaires . J'ai un petit soucis tel qu'énoncé dans mon titre. En introduction et dans le but d'explliquer brièvement l'intérêt du fichier excel que j'ai réalisé: Ce document excel à pour simple objectif d'archiver les centaines de mails traités par les agents de l'entreprise ou je bosse. Pour cela j'utilise un grand tableau pour stocker les diverses informations sur le traitement de ces mails (genre, nom, prénom de l'administré, identifiant, date, délai de réponse...),12 onglets identiques pour les 12 mois de l'année.
Mon problème se situe dans la nouvelle fonctionnalité que je suis entrain de développer en VBA. Ce petit programme doit permettre dans l'onglet décembre de proposer un bouton permettant de reproduire automatiquement un nouveau document excel identique dans sa structure mais qui efface le contenu des 12 tableaux (12 onglets), plus quelques détails supplémentaire tel que mise à jour des titres (qui affiche l'année) mais c'est du détail.
Alors mon programme est totalement fonctionnel lorsque j'execute ce dernier en local ou réseau local c'est à dire lorsque mon fichier a un chemin d'accès du type "C:\BlaBlaBla\Blablo\mon Suivi mails.xlsm". Par contre lorsque j'exécute ce même programme à partir d'un réseau distant, un chemin de type "https:\\serveur_communauté_de_travail\mon Suivi mails.xlsm" la j'ai cette vilaine erreur qui apparait (celle précisée dans mon titre) .
Alors l'erreur apparait lors de l'utilisation de la fonction DIR() qui me permet de vérifier si le fichier n'a pas déja été créé.
Voici le code:
L'erreur se situe donc à l'utilisation de la fonction Dir() en début de code dans le bloc with ThisWorkbook .
Voila si quelqu'un a une explication je suis preneur car je tourne un peu en rond, je ne comprends pas pourquoi une adresse distante bug alors qu'en local ca passe…
Merci d'avance de votre aide!
Je viens chercher des cerveaux complémentaires . J'ai un petit soucis tel qu'énoncé dans mon titre. En introduction et dans le but d'explliquer brièvement l'intérêt du fichier excel que j'ai réalisé: Ce document excel à pour simple objectif d'archiver les centaines de mails traités par les agents de l'entreprise ou je bosse. Pour cela j'utilise un grand tableau pour stocker les diverses informations sur le traitement de ces mails (genre, nom, prénom de l'administré, identifiant, date, délai de réponse...),12 onglets identiques pour les 12 mois de l'année.
Mon problème se situe dans la nouvelle fonctionnalité que je suis entrain de développer en VBA. Ce petit programme doit permettre dans l'onglet décembre de proposer un bouton permettant de reproduire automatiquement un nouveau document excel identique dans sa structure mais qui efface le contenu des 12 tableaux (12 onglets), plus quelques détails supplémentaire tel que mise à jour des titres (qui affiche l'année) mais c'est du détail.
Alors mon programme est totalement fonctionnel lorsque j'execute ce dernier en local ou réseau local c'est à dire lorsque mon fichier a un chemin d'accès du type "C:\BlaBlaBla\Blablo\mon Suivi mails.xlsm". Par contre lorsque j'exécute ce même programme à partir d'un réseau distant, un chemin de type "https:\\serveur_communauté_de_travail\mon Suivi mails.xlsm" la j'ai cette vilaine erreur qui apparait (celle précisée dans mon titre) .
Alors l'erreur apparait lors de l'utilisation de la fonction DIR() qui me permet de vérifier si le fichier n'a pas déja été créé.
Voici le code:
VB:
Sub genere_nouveau_document(ByRef nouvelle_annee As Integer, ByRef annee_en_cours As Integer)
Dim cheminDossier As String, cheminComplet As String, newFileName As String
cheminDossier = ActiveWorkbook.Path + "/"
newFileName = "Suivi mails " & nouvelle_annee & ".xlsm"
cheminComplet = cheminDossier + newFileName
With ThisWorkbook
.Save
If Dir(cheminComplet) = "" Then <--------- C'est ici que le code s'arrête lorsque la variable cheminComplet est du type https:\\ et fonctionne parfaitement avec C:\ ou Z:\ bref n'importe quelle lecteur local ou reseau.
.SaveCopyAs Filename:=cheminComplet
Else
If MsgBox("Le fichier <<" & newFileName & ">> existe déjà. Êtes-vous sûr de vouloir l'écraser ?", vbCritical + vbYesNo, "Ecraser le fichier?") = vbYes Then
.SaveCopyAs Filename:=cheminComplet
Else: Exit Sub
End If
End If
End With
'****************************************************************************
'****** EFFACEMENT DES DONNEES EXISTANTES DANS LE NOUVEAU FICHIER CREE ******
'****************************************************************************
Workbooks.Open (cheminComplet) 'Ouverture du nouveau classeur de suivi mail créé
Dim sh As Sheets, feuil As Object
Set sh = ActiveWorkbook.Sheets
'Remise à zéro et mise en forme de l'ensemble des cellules des Tableaux dans chaque onglet mensuel
For Each feuil In sh
If feuil.Name <> "Feuil2" Then
feuil.Unprotect
With feuil.Range("A10:J700")
.ClearContents
.Borders.Weight = xlHairline
.BorderAround Weight:=xlMedium
End With
'Mise à jour des titres des feuilles
feuil.Range("D3").Value = Replace(feuil.Range("D3").Value, annee_en_cours, nouvelle_annee)
feuil.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowFiltering:=True
End If
Next
'Sauvegarde puis fermeture du nouveau fichier <<suivi mail>> créé.
Application.DisplayAlerts = False
Workbooks(newFileName).SaveAs ActiveWorkbook.Path & "\" & newFileName 'Ne pas utiliser la méthode .Save car sur le reseau elle n'enregistre pas au bon endroit
Application.DisplayAlerts = False
ActiveWorkbook.Close
MsgBox "Un nouveau fichier vierge nommé """ & newFileName & """ a été créé dans le dossier SUIVI MAILS." & Chr(10) & Chr(13) & Chr(10) & Chr(13) _
& "Des nouveaux dossiers ARRIVE et DEPART vierges ont également été créés pour l'archivage des mails de cette nouvelle année.", vbInformation, "Nouveau fichier créé"
'Création des dossiers et sous-dossiers (APPEL DE LA FONCTION creation_dossiers voir ci-dessous)
Call creation_dossiers(nouvelle_annee)
End Sub
L'erreur se situe donc à l'utilisation de la fonction Dir() en début de code dans le bloc with ThisWorkbook .
Voila si quelqu'un a une explication je suis preneur car je tourne un peu en rond, je ne comprends pas pourquoi une adresse distante bug alors qu'en local ca passe…
Merci d'avance de votre aide!