flyingmuad
XLDnaute Nouveau
Bonjour,
Tout d’abord peu habitué au forum, toutes mes excuses pour les maladresses que je peux commettre dans ce fil.
Voici mon problème
Depuis un classeur vierge je vais chercher dans un classeur modèle les paragraphes qui m'intéresse pour établir un devis.
Pour cela j'utilise un UF qui me génère une liste déroulante avec cases à cocher depuis les infos contenues dans le modèle.
Je suis sous W10 Excel 2016 version 2204 32 bits (j’ai réécris le code pour fonctionner sur des machines ou Excel est en 64bits)
Ca fonctionne parfaitement sur mon PC et sur d’autres
Mais sur celui d'un collaborateur sous W10 Excel 2016 MSO 64 bits , la macro fonctionne pas à pas, par contre en automatique celle-ci s’arrête à la ligne
Set source = Workbooks.Open(chemin & "modele.xlsx") ‘ en gras dans la macro ci-dessous. Je précise que <chemin_source> est une constante initialisée au lancement de la macro principale
Le fichier modele.xlsx est ouvert mais la macro arrêtée sans signaler d’erreur.
Comme j’accède à un réseau, j’ai temporisé l’ouverture avec une fonction delay(5seconde) mais sans succès
J’ai placé un <stop> avant cette ligne pour un appui sur l’outil exécuter dans l’éditeur
La macro s’arrête puis fonctionne parfaitement après cette action (Ajout 1 ci-dessous)
J’ai remplacé ce stop par un Msgbox pour éviter d’aller dans l’éditeur
Le message apparait bien, mais la macro s’arrête au même endroit (Ajout 2 ci-dessous)
Je ne sais plus ! Quelqu’un aurait-il une piste ?
Merci
Patrice
Sub creation_dpgf()
Dim chemin, i, rep_sauve, ChoixDossier
Dim nom_dpgf, xa, xb, ligne, fich_nom, tampon
Dim but As Workbook
Dim source As Workbook, wb As Workbook
Dim feuille_dpgf As Worksheet
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Application.DisplayAlerts = False
' ------------------------- paramétrage acces répertoire
chemin = chemin_source
rep_sauve = "\\192.xxx.x.xxx\Partage\01 - Fichiers Clients\"
If chemin_source = "C:\xxxxxxx\" Then rep_sauve = "C:\"
' ---------------------------------------- création du nom du DPGF
re_saisie:
nom_dpgf = InputBox("Merci de donner un nom au DPGF" & VBA.Chr(10) & " Puis de choisir le répertoire de sauvegarde", "NOM DU PROJET")
If nom_dpgf = "" Then Exit Sub
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = rep_sauve
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1) & "\"
Else
ChoixDossier = ""
Exit Sub
End If
End With
xa = VBA.Len(ChoixDossier) + VBA.Len(nom_dpgf)
If xa > 218 Then
xb = MsgBox("Ce nom est trop long, merci de la réduire de " & 218 - xa & "caractère(s)", vbOKOnly, "ATTENTION")
GoTo re_saisie
End If
ActiveSheet.Name = nom_dpgf
Set but = ActiveWorkbook '
Set feuille_dpgf = but.ActiveSheet
(STOP) ------------------------------------------------------------ Ajout 1
Tampon =msgbox(…) -------------------------------------------- Ajout 2
Set source = Workbooks.Open(chemin & "modele.xlsx")
Cells(3, 3) = nom_dpgf
creat_dpgf.Show ' --------------------------------------------> choix des titres à recopier
…/…
Puis suite de la macro ou je copie/colle les paragraphes sélectionnés et sauvegarde le nouveau classeur sous le nom choisi
…/…
ActiveWorkbook.SaveAs ChoixDossier & nom_dpgf & ".xlsx"
End Sub
Tout d’abord peu habitué au forum, toutes mes excuses pour les maladresses que je peux commettre dans ce fil.
Voici mon problème
Depuis un classeur vierge je vais chercher dans un classeur modèle les paragraphes qui m'intéresse pour établir un devis.
Pour cela j'utilise un UF qui me génère une liste déroulante avec cases à cocher depuis les infos contenues dans le modèle.
Je suis sous W10 Excel 2016 version 2204 32 bits (j’ai réécris le code pour fonctionner sur des machines ou Excel est en 64bits)
Ca fonctionne parfaitement sur mon PC et sur d’autres
Mais sur celui d'un collaborateur sous W10 Excel 2016 MSO 64 bits , la macro fonctionne pas à pas, par contre en automatique celle-ci s’arrête à la ligne
Set source = Workbooks.Open(chemin & "modele.xlsx") ‘ en gras dans la macro ci-dessous. Je précise que <chemin_source> est une constante initialisée au lancement de la macro principale
Le fichier modele.xlsx est ouvert mais la macro arrêtée sans signaler d’erreur.
Comme j’accède à un réseau, j’ai temporisé l’ouverture avec une fonction delay(5seconde) mais sans succès
J’ai placé un <stop> avant cette ligne pour un appui sur l’outil exécuter dans l’éditeur
La macro s’arrête puis fonctionne parfaitement après cette action (Ajout 1 ci-dessous)
J’ai remplacé ce stop par un Msgbox pour éviter d’aller dans l’éditeur
Le message apparait bien, mais la macro s’arrête au même endroit (Ajout 2 ci-dessous)
Je ne sais plus ! Quelqu’un aurait-il une piste ?
Merci
Patrice
Sub creation_dpgf()
Dim chemin, i, rep_sauve, ChoixDossier
Dim nom_dpgf, xa, xb, ligne, fich_nom, tampon
Dim but As Workbook
Dim source As Workbook, wb As Workbook
Dim feuille_dpgf As Worksheet
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Application.DisplayAlerts = False
' ------------------------- paramétrage acces répertoire
chemin = chemin_source
rep_sauve = "\\192.xxx.x.xxx\Partage\01 - Fichiers Clients\"
If chemin_source = "C:\xxxxxxx\" Then rep_sauve = "C:\"
' ---------------------------------------- création du nom du DPGF
re_saisie:
nom_dpgf = InputBox("Merci de donner un nom au DPGF" & VBA.Chr(10) & " Puis de choisir le répertoire de sauvegarde", "NOM DU PROJET")
If nom_dpgf = "" Then Exit Sub
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = rep_sauve
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1) & "\"
Else
ChoixDossier = ""
Exit Sub
End If
End With
xa = VBA.Len(ChoixDossier) + VBA.Len(nom_dpgf)
If xa > 218 Then
xb = MsgBox("Ce nom est trop long, merci de la réduire de " & 218 - xa & "caractère(s)", vbOKOnly, "ATTENTION")
GoTo re_saisie
End If
ActiveSheet.Name = nom_dpgf
Set but = ActiveWorkbook '
Set feuille_dpgf = but.ActiveSheet
(STOP) ------------------------------------------------------------ Ajout 1
Tampon =msgbox(…) -------------------------------------------- Ajout 2
Set source = Workbooks.Open(chemin & "modele.xlsx")
Cells(3, 3) = nom_dpgf
creat_dpgf.Show ' --------------------------------------------> choix des titres à recopier
…/…
Puis suite de la macro ou je copie/colle les paragraphes sélectionnés et sauvegarde le nouveau classeur sous le nom choisi
…/…
ActiveWorkbook.SaveAs ChoixDossier & nom_dpgf & ".xlsx"
End Sub