Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fichier Temp sur D: et pas sur C: qui plante ma macro

7 réponses
Avatar
Menibelus
Bonjour,

J'ai un classeur dans lequel un macro affectée à un bouton copie une
feuille afin de l'envoyer par mail avec le programme de mail par
default

Mon soucis est que ce classeur fonctionne sur un Pc dans un entreprise
et que l'accès au disk C: est verrouillé donc la copie dans C:\temp ne
fonctionne (TempFilePath = Environ$("temp") & "\")

Seul l'accès au disk D: est disponible auriez vous une solution a me
donner

Merci

7 réponses

Avatar
MichDenis
La procédure suivante va créer un répertoire "Temp" sur le lecteur "D"
Il ne te reste plus qu'à ajouter ta procédure pour envoyer le fichier
désiré vers ce répertoire.


'------------------------------
Sub test1()
Dim Chemin As String, Commande As String

'à titre d'exemple :
'Chemin = "D:Temp"

'S'assurer d'être sur le bon lecteur où les répertoires
'doivent être créé
ChDrive "D"

Commande = Environ("comspec") & " /c mkdir " & Chemin
Shell Commande, 0

End Sub
'------------------------------




"Menibelus" a écrit dans le message de news:

Bonjour,

J'ai un classeur dans lequel un macro affectée à un bouton copie une
feuille afin de l'envoyer par mail avec le programme de mail par
default

Mon soucis est que ce classeur fonctionne sur un Pc dans un entreprise
et que l'accès au disk C: est verrouillé donc la copie dans C:temp ne
fonctionne (TempFilePath = Environ$("temp") & "")

Seul l'accès au disk D: est disponible auriez vous une solution a me
donner

Merci
Avatar
MichDenis
Si ce que tu veux faire c'est de modifier le répertoire par défaut qu'utilise
par exemple Outlook Express pour enregistrer les messages, tu peux
modifier ce chemin par ceci :

Dans Outlook Express : Barre des menus / outils / Options / Onglet Maintenance /
un clic sur le bouton "Dossier de Stockage" / Modifier...



"Menibelus" a écrit dans le message de news:

Bonjour,

J'ai un classeur dans lequel un macro affectée à un bouton copie une
feuille afin de l'envoyer par mail avec le programme de mail par
default

Mon soucis est que ce classeur fonctionne sur un Pc dans un entreprise
et que l'accès au disk C: est verrouillé donc la copie dans C:temp ne
fonctionne (TempFilePath = Environ$("temp") & "")

Seul l'accès au disk D: est disponible auriez vous une solution a me
donner

Merci
Avatar
Menibelus
MichDenis a exposé le 18/02/2008 :
Si ce que tu veux faire c'est de modifier le répertoire par défaut qu'utilise
par exemple Outlook Express pour enregistrer les messages, tu peux
modifier ce chemin par ceci :

Dans Outlook Express : Barre des menus / outils / Options / Onglet
Maintenance / un clic sur le bouton "Dossier de Stockage" / Modifier...



"Menibelus" a écrit dans le message de news:

Bonjour,

J'ai un classeur dans lequel un macro affectée à un bouton copie une
feuille afin de l'envoyer par mail avec le programme de mail par
default

Mon soucis est que ce classeur fonctionne sur un Pc dans un entreprise
et que l'accès au disk C: est verrouillé donc la copie dans C:temp ne
fonctionne (TempFilePath = Environ$("temp") & "")

Seul l'accès au disk D: est disponible auriez vous une solution a me
donner

Merci


Merci, ce que je souhaite c'est que quand j'utilise la macro ci-dessous
elle fonctionne malgré la restriction d'accès au disk C:
Sub Mail_Selection()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long

Set Source = Nothing
On Error Resume Next
Set Source = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0

If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected,
please correct and try again.", vbOKOnly
Exit Sub
End If

If ActiveWindow.SelectedSheets.Count > 1 Or _
Selection.Cells.Count = 1 Or _
Selection.Areas.Count > 1 Then
MsgBox "An Error occurred :" & vbNewLine & vbNewLine & _
"You have more than one sheet selected." & vbNewLine &
_
"You only selected one cell." & vbNewLine & _
"You selected more than one area." & vbNewLine &
vbNewLine & _
"Please correct and try again.", vbOKOnly
Exit Sub
End If

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)

Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

TempFilePath = Environ$("temp") & ""
TempFileName = "Planing " & wb.Name & " " & Format(Now, "dd-mmm-yy
h-mm-ss")

If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007
FileExtStr = ".xlsx": FileFormatNum = 51
End If

With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
.SendMail "", _
"Planning du mois de "
On Error GoTo 0
.Close SaveChanges:úlse
End With

Kill TempFilePath & TempFileName & FileExtStr

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Avatar
MichDenis
Si l'usager dans un réseau n'a pas de droit sur le lecteur C.
il n'y a pas grand chose à faire !

tu peux choisir un autre lecteur pour sauvegarder tes documents
si un tel lecteur est disponible...

Ce n'est pas un problème d'excel, tu devrais discuter de la chose avec
ton administrateur réseau.



"Menibelus" a écrit dans le message de news:

MichDenis a exposé le 18/02/2008 :
Si ce que tu veux faire c'est de modifier le répertoire par défaut qu'utilise
par exemple Outlook Express pour enregistrer les messages, tu peux
modifier ce chemin par ceci :

Dans Outlook Express : Barre des menus / outils / Options / Onglet
Maintenance / un clic sur le bouton "Dossier de Stockage" / Modifier...



"Menibelus" a écrit dans le message de news:

Bonjour,

J'ai un classeur dans lequel un macro affectée à un bouton copie une
feuille afin de l'envoyer par mail avec le programme de mail par
default

Mon soucis est que ce classeur fonctionne sur un Pc dans un entreprise
et que l'accès au disk C: est verrouillé donc la copie dans C:temp ne
fonctionne (TempFilePath = Environ$("temp") & "")

Seul l'accès au disk D: est disponible auriez vous une solution a me
donner

Merci


Merci, ce que je souhaite c'est que quand j'utilise la macro ci-dessous
elle fonctionne malgré la restriction d'accès au disk C:
Sub Mail_Selection()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long

Set Source = Nothing
On Error Resume Next
Set Source = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0

If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected,
please correct and try again.", vbOKOnly
Exit Sub
End If

If ActiveWindow.SelectedSheets.Count > 1 Or _
Selection.Cells.Count = 1 Or _
Selection.Areas.Count > 1 Then
MsgBox "An Error occurred :" & vbNewLine & vbNewLine & _
"You have more than one sheet selected." & vbNewLine &
_
"You only selected one cell." & vbNewLine & _
"You selected more than one area." & vbNewLine &
vbNewLine & _
"Please correct and try again.", vbOKOnly
Exit Sub
End If

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)

Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

TempFilePath = Environ$("temp") & ""
TempFileName = "Planing " & wb.Name & " " & Format(Now, "dd-mmm-yy
h-mm-ss")

If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007
FileExtStr = ".xlsx": FileFormatNum = 51
End If

With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
.SendMail "", _
"Planning du mois de "
On Error GoTo 0
.Close SaveChanges:úlse
End With

Kill TempFilePath & TempFileName & FileExtStr

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Avatar
Modeste
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

Si l'usager dans un réseau n'a pas de droit sur le lecteur C.
il n'y a pas grand chose à faire !


c'est cependant le cas pour de nombreux utilisateurs, travaillant dans de
grandes entreprises
Expérience personnelle à laquelle j'ai participé en phase de déploiement...

l'utilisateur travaille en permanence sur un espace virtuel personnalisé (qui
est en fait souvent sur C:, mais il ne le sait pas)
il dispose d'un espace personnel privé équivalent à 700Mo (equivalent sauvegarde
1 CD)
avec à sa disposition des espaces collaboratifs partageables selon plusieur
niveaux (Perso(miroir), Section, Service, Departement, Entreprise, Pays)
les applications sont distribuées sur abonnement, les mises à jour sont
effectuées en batch nocturnes
aucune installation sauvage, les logiciels autorisés ou installés sont
identifiés chaque nuit
les sauvegardes partagées sont faites en temps réels sur disques tandem,
les configurations des postes sont mastérisées
l'utilisateur retrouve son environnement et contexte quelque soit le poste sur
lequel il s'identifie
en cas d'incidents matériels (casse, vol, incendie, utilisation délocalisée)
l'utilisateur retrouve ses fichiers, sa messagerie en moins d'une heure.
en cas de coupure réseau, l'utilisateur peut continuer à travailler sur son
espace personnel,
la synchro s'effectuant automatiquement lors de la reconnexion.

tous les utilisateurs travaillent avec des outils au même niveau de version,
l'alignement des versions prends moins de 48 heures sur l'ensemble d'un parc
superieur à 50000 PC


Grosse usine à gaz, gros plantages en phase béta, mais au final énorme économie
d'échelle pour les grands comptes
(Infogérance mise en oeuvre par le président du Cigref à l'époque DSI de mon
employeur et N+4 par rapport à moi ;o)))



--
--
@+
;o)))

Avatar
MichDenis
Effectivement, ce type d'installation réseau est très efficace mais
lourd au niveau de son déploiement. J'espère que l'ami demandeur
sera s'y retrouvé.



"Modeste" a écrit dans le message de news:

Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

Si l'usager dans un réseau n'a pas de droit sur le lecteur C.
il n'y a pas grand chose à faire !


c'est cependant le cas pour de nombreux utilisateurs, travaillant dans de
grandes entreprises
Expérience personnelle à laquelle j'ai participé en phase de déploiement...

l'utilisateur travaille en permanence sur un espace virtuel personnalisé (qui
est en fait souvent sur C:, mais il ne le sait pas)
il dispose d'un espace personnel privé équivalent à 700Mo (equivalent sauvegarde
1 CD)
avec à sa disposition des espaces collaboratifs partageables selon plusieur
niveaux (Perso(miroir), Section, Service, Departement, Entreprise, Pays)
les applications sont distribuées sur abonnement, les mises à jour sont
effectuées en batch nocturnes
aucune installation sauvage, les logiciels autorisés ou installés sont
identifiés chaque nuit
les sauvegardes partagées sont faites en temps réels sur disques tandem,
les configurations des postes sont mastérisées
l'utilisateur retrouve son environnement et contexte quelque soit le poste sur
lequel il s'identifie
en cas d'incidents matériels (casse, vol, incendie, utilisation délocalisée)
l'utilisateur retrouve ses fichiers, sa messagerie en moins d'une heure.
en cas de coupure réseau, l'utilisateur peut continuer à travailler sur son
espace personnel,
la synchro s'effectuant automatiquement lors de la reconnexion.

tous les utilisateurs travaillent avec des outils au même niveau de version,
l'alignement des versions prends moins de 48 heures sur l'ensemble d'un parc
superieur à 50000 PC


Grosse usine à gaz, gros plantages en phase béta, mais au final énorme économie
d'échelle pour les grands comptes
(Infogérance mise en oeuvre par le président du Cigref à l'époque DSI de mon
employeur et N+4 par rapport à moi ;o)))



--
--
@+
;o)))

Avatar
Menibelus
MichDenis a exprimé avec précision :
Effectivement, ce type d'installation réseau est très efficace mais
lourd au niveau de son déploiement. J'espère que l'ami demandeur
sera s'y retrouvé.



"Modeste" a écrit dans le message de news:

Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

Si l'usager dans un réseau n'a pas de droit sur le lecteur C.
il n'y a pas grand chose à faire !


c'est cependant le cas pour de nombreux utilisateurs, travaillant dans de
grandes entreprises
Expérience personnelle à laquelle j'ai participé en phase de déploiement...

l'utilisateur travaille en permanence sur un espace virtuel personnalisé (qui
est en fait souvent sur C:, mais il ne le sait pas)
il dispose d'un espace personnel privé équivalent à 700Mo (equivalent
sauvegarde 1 CD)
avec à sa disposition des espaces collaboratifs partageables selon plusieur
niveaux (Perso(miroir), Section, Service, Departement, Entreprise, Pays)
les applications sont distribuées sur abonnement, les mises à jour sont
effectuées en batch nocturnes
aucune installation sauvage, les logiciels autorisés ou installés sont
identifiés chaque nuit
les sauvegardes partagées sont faites en temps réels sur disques tandem,
les configurations des postes sont mastérisées
l'utilisateur retrouve son environnement et contexte quelque soit le poste
sur lequel il s'identifie
en cas d'incidents matériels (casse, vol, incendie, utilisation délocalisée)
l'utilisateur retrouve ses fichiers, sa messagerie en moins d'une heure.
en cas de coupure réseau, l'utilisateur peut continuer à travailler sur son
espace personnel,
la synchro s'effectuant automatiquement lors de la reconnexion.

tous les utilisateurs travaillent avec des outils au même niveau de version,
l'alignement des versions prends moins de 48 heures sur l'ensemble d'un parc
superieur à 50000 PC


Grosse usine à gaz, gros plantages en phase béta, mais au final énorme
économie d'échelle pour les grands comptes
(Infogérance mise en oeuvre par le président du Cigref à l'époque DSI de mon
employeur et N+4 par rapport à moi ;o)))



--


Je vais essaye de me depatouiller avec vos explications un grand merci