Flo Cabon, Excelabo 2005 - Validation de facture
Le
NewsMic

Bonsoir,
J'ai adapté la très bonne macro validation de facture citée en objet pour
Excel 2002.
Je passe progressivement à MS Office 2007 Professionnel en "migrant' les
versions : parmi les nouvelles options, je sauvegarde les classeurs .xls en
xlsm (classeur Excel prenant en charge les macros).
Par un rechercher/remplacer des extensions ".xls" par ".xlsm", j'ai modifié
tout le contenu de la macro.
J'ai maintenant 2 erreurs :
- Le fichier de destination ne s'ouvre plus avec la macro et un nouveau
fichier est créé sur la base du "modèlemensuel".
- "l'espion" sur "err" indique la valeur 9. "Error= l'indice n'appartient
pas à la sélection"
J'ai mis en commentaires la partie "création si le fichier n'existe pas".
Et si le fichier de destination est ouvert AVANT l'exécution de la macro,
tout se déroule parfaitement.
Je vous donne ci-dessous les variables de la macro ainsi que le partie
"création".
Si quelqu'un a une idée du problème. Pour info, je ne suis pas très calé en
Vba. Merci.
NewsMic
***************
Dim ClassDest As String
Dim Msg As String
Dim Valid
Dim NumFact
Dim Onglet As String
ThisWorkbook.Activate
'existe-t-il dans le répertoire un classeur factures-févr05.xlsm si on est
en février ?
'détermination du nom de ce classeur en fonction de mois-Année en cours
ClassDest = "Factures-" & Format(Now(), "mmmyy") & ".xlsm"
' activer le fichier
On Error Resume Next
Workbooks(ClassDest).Activate
'si le classeur n'est pas déjà ouvert, l'ouvrir
If Err <> 0 Then
On Error Resume Next
Workbooks.Open (ThisWorkbook.Path & "" & ClassDest)
'si le classeur n'existe pas, le créer en utilisant le modèle
"modèlemensuel"
If Err <> 0 Then
Workbooks.Add(ThisWorkbook.Path & "modèlemensuel").SaveAs
(ThisWorkbook.Path & "" & ClassDest)
End If
End If
J'ai adapté la très bonne macro validation de facture citée en objet pour
Excel 2002.
Je passe progressivement à MS Office 2007 Professionnel en "migrant' les
versions : parmi les nouvelles options, je sauvegarde les classeurs .xls en
xlsm (classeur Excel prenant en charge les macros).
Par un rechercher/remplacer des extensions ".xls" par ".xlsm", j'ai modifié
tout le contenu de la macro.
J'ai maintenant 2 erreurs :
- Le fichier de destination ne s'ouvre plus avec la macro et un nouveau
fichier est créé sur la base du "modèlemensuel".
- "l'espion" sur "err" indique la valeur 9. "Error= l'indice n'appartient
pas à la sélection"
J'ai mis en commentaires la partie "création si le fichier n'existe pas".
Et si le fichier de destination est ouvert AVANT l'exécution de la macro,
tout se déroule parfaitement.
Je vous donne ci-dessous les variables de la macro ainsi que le partie
"création".
Si quelqu'un a une idée du problème. Pour info, je ne suis pas très calé en
Vba. Merci.
NewsMic
***************
Dim ClassDest As String
Dim Msg As String
Dim Valid
Dim NumFact
Dim Onglet As String
ThisWorkbook.Activate
'existe-t-il dans le répertoire un classeur factures-févr05.xlsm si on est
en février ?
'détermination du nom de ce classeur en fonction de mois-Année en cours
ClassDest = "Factures-" & Format(Now(), "mmmyy") & ".xlsm"
' activer le fichier
On Error Resume Next
Workbooks(ClassDest).Activate
'si le classeur n'est pas déjà ouvert, l'ouvrir
If Err <> 0 Then
On Error Resume Next
Workbooks.Open (ThisWorkbook.Path & "" & ClassDest)
'si le classeur n'existe pas, le créer en utilisant le modèle
"modèlemensuel"
If Err <> 0 Then
Workbooks.Add(ThisWorkbook.Path & "modèlemensuel").SaveAs
(ThisWorkbook.Path & "" & ClassDest)
End If
End If
il faut aussi que tu modifies le classeur modèle ! commence par l'ouvrir
et réenregistre le comme un modèle XL2007.
Misange
Le lien d'origine (astuce n°1580)
http://www.excelabo.net/moteurs/compteclic.php?nomü-factures
J'ai suivi ton conseil et enregistré le modèle en "modèle prenant en charge
les macros". Il s'appelle maintenant "modèlemensuel.xltm"
Mais l"exécution de la macro crée un fichier "modèlemensuel1" qui n'est pas
renommé comme prévu dans la macro. Du coup, la feuille vient s'enregistrer
dans le fichier de saisie de factures (fc-facture).
NewsMic
"Misange"
Je viens de regarder rapidement, sans pouvoir tester n'ayant pas accès à
office 2007 en ce moment. Je t'ai répondu une annerie hier, abusée par
le nom modèlemensuel : ce classeur n'est pas un modèle au sens d'excel
(ce nom est très mal choisi...) il ne faut donc pas le nommer xltm mais
xlsx (il n'y a aucune macro dedans !)
si cela ne suffit pas, modifie aussi cette ligne :
Workbooks.Add(ThisWorkbook.Path & "modèlemensuel").SaveAs
(ThisWorkbook.Path & "" & ClassDest)
en précisant l'extension de modèlemensuel.
Dès que je pourrai tester je le ferai...
Dis moi si ça fonctionne.
Misange
en forme personnalisée avant impression.
Le classeur de destination existant déjà, il s'ouvre normalement bien que
l'espion "err" donne le n°9 et que toujours dans la fenêtre de cet espion,
le message est "l'indice n'appartient pas à la sélection".
La ligne que tu indiques (Workbooks.Add(ThisWorkbook.....) existe déjà
exactement comme tu l'écris.
La valeur "error" ne restant pas à 0 après ouverture du fichier, la création
de "modèlemensuel1" s'exécute. J'ai donc mis en commentaires les lignes de
création.
NewsMic
"Misange"
xlsm et pas xltm
Ma suggestion était de rajouter l'extension derrière modèle mensuel...
Workbooks.Add(ThisWorkbook.Path & "modèlemensuel****.XLSX*****").SaveAs
(ThisWorkbook.Path & "" & ClassDest)
Misange