Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Blocage macro sur instruction SET

flyingmuad

XLDnaute Nouveau
Bonjour,
Un petit coup de pouce SVP.
J'ai des macros qui tournent sous EXCEL Pro Plus 2016 sur plusieurs PC sans problème, mais sur un, même configuration, l'une d'elle bloque.

Son but :
Je pars d'un nouveau classeur dont je choisis le nom et le répertoire de sauvegarde
J'ouvre un fichier modèle que je nettoies au cas où, qui me sert à documenter un userform
Dans l'UF je choisis les différents chapitres et sous chapitres que je souhaite voir dans mon devis
Une fois validé, je reporte le détail des chapitres choisis dans une zone préformatée du classeur modèle
Je copie l'ensemble de la zone sur le nouveau classeur
Je ferme sans le sauvegarder le classeur modèle
je sauvegarde sous le nom choisi le nouveau classeur
D'autres macro viennent ensuite mettre en forme le devis définitif.

J'ai essayé beaucoup de chose sans succès.
Pas à pas avec F8 elle fonctionne partout; mais quand on la lance (raccourci clavier, éditeur VBA ou bouton dans menu) elle coince sur un PC.

Aux dires du service informatique ce PC est configuré de la même manière que les autres. Je n'ai pas les compétences pour vérifier.
J'ai identifié dans le code l'endroit ou elle bloque (j'ai laissé en commentaire les différents essais ou modifications). Les lignes sans numéro sont les modifications apportées.
NB cette macro telle qu'elle est ci dessous fonctionne sur tous les PC sauf un.
Le blocage est à la ligne 250 instruction SET (ou dans toute les modifications sur cette même instruction SET), le déroulement de la macro s'interrompt, elle n'est pas arrêtée (pas d'erreur, le curseur reste normal). Le fichier modèle est bien ouvert mais l'UF n'est pas affiché. En cliquant n'importe ou dans le fichier modèle la macro s'arrete sans erreur et je peux reprendre la main (éventuellement la relancer).
Je n'est pas eu de problème avec les instructions SET des lignes 230 et 240

Tout éclairage sera le bienvenu et merci d'avance

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

10 Application.DisplayAlerts = False
'GoTo zap

' ------------------------- paramétrage acces répertoire
20 chemin = chemin_source
30 rep_sauve = "\\192.168.1.252\Partage\01 - Fichiers Clients\"

40 If chemin_source = "C:\LOCAL\" Then rep_sauve = "C:\"

' ---------------------------------------- création du nom du DPGF
re_saisie:
50 nom_dpgf = InputBox("Merci de donner un nom au DPGF" & VBA.Chr(10) & " Puis de choisir le répertoire de sauvegarde", "NOM DU PROJET")
60 If nom_dpgf = "" Then Exit Sub

70 With Application.FileDialog(msoFileDialogFolderPicker)
80 .InitialFileName = rep_sauve
90 .Show
100 If .SelectedItems.Count > 0 Then
110 ChoixDossier = .SelectedItems(1) & "\"
120 Else
130 ChoixDossier = ""
140 Exit Sub
150 End If
160 End With

zap:

170 xa = VBA.Len(ChoixDossier) + VBA.Len(nom_dpgf)
180 If xa > 218 Then
190 xb = MsgBox("Ce nom est trop long, merci de la réduire de " & 218 - xa & "caractère(s)", vbOKOnly, "ATTENTION")
200 GoTo re_saisie
210 End If

220 ActiveSheet.Name = nom_dpgf
230 Set but = ActiveWorkbook ' ChoixDossier & nom_dpgf & ".xlsx"

240 Set feuille_dpgf = but.ActiveSheet 'but.Worksheets(nom_dpgf)

Workbooks.Open Filename:=chemin & "modele.xlsx"
' Workbooks(chemin & "modele.xlsx").Activate
Set source = ActiveWorkbook

250 ' Set source = Workbooks.Open(chemin & "modele.xlsx") 'ThisWorkbook ' chemin & "modele.xlsx"
260 Columns("W:W").ClearContents
270 Cells(10, 22) = 0
280 Cells(14, 22) = 0
290 Cells(24, 22) = 0
300 Cells(29, 22) = 0
310 Cells(32, 22) = 0
320 Cells(38, 22) = 0
330 Cells(42, 22) = 0
340 Cells(47, 22) = 0
350 Cells(48, 22) = 0
360 Cells(49, 22) = 0
370 Cells(3, 3) = nom_dpgf
380 creat_dpgf.Show ' --------------------------------------------> choix des titres
390 source.Sheets("modele-s").Columns("A:N").Copy
400 but.Activate
440 Range("BF1").Value = "Scratch0"
450 source.Close (False)
 

flyingmuad

XLDnaute Nouveau
@ Oneida
Déjà, merci de regarder!

Oui j'ai fait, la macro "s'arrête" sur la ligne 250

J'ai dejà eu des soucis avec une boucle infinie. Ici ce n'est pas le cas, pas besoin d'un alt+ctrl+del pour sortir, un clic sur la feuille du classeur modèle arrête la macro.
J'ai pensé quelle était en attente d'une réponse, j'ai bien regardé mais n'est rien trouvé. Pas de msgbox ou inputbox qui traine

Effectivement le chemin n'est pas défini dans cette macro mais fait partie des variables déclarées public dans la macro d'initialisation de la procédure (30 modules + 29 UF + des fonctions perso) :
Option Explicit
Public detail_CV(50, 5) As String
Public connexion As Boolean
Public chemin_source As String
Public strAddress As String
Public initial As String
Public decalage As Single
Public fichier_a_fusion(6) As String
Public flag_scratch As Boolean
Public code_article As String
Public designation_article As String
Public prix_article As Single
Public trav_sheet As String
Public wb As Workbook
Public procedure As String
 

flyingmuad

XLDnaute Nouveau
@ job75 bonjour et merci

donc: soit en réseau :
chemin_source = "\\xxx.xxx.xxx.xxx\Partage\BUREAU D'ETUDES\LOGICIELS\"
soit en local :
chemin_source = "C:\LOCAL\"

Toutes les macro sont stockées dans XLSTART de l'utilisateur

J'ai en prévision de basculer le tout en module complémentaire, mais pour l'instant ca fonctionne dans 90% des cas!
 

Discussions similaires

Réponses
0
Affichages
352
Réponses
1
Affichages
432
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…