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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Misange
Le #5027191
Bonsoir,
il faut aussi que tu modifies le classeur modèle ! commence par l'ouvrir
et réenregistre le comme un modèle XL2007.
Misange

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




NewsMic
Le #5027061
Re bonsoir,

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"
Bonsoir,
il faut aussi que tu modifies le classeur modèle ! commence par l'ouvrir
et réenregistre le comme un modèle XL2007.
Misange

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





Misange
Le #5026921
Re bonsoir,

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


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

NewsMic
Le #5026371
Ok. Pour le classeur, je l'ai recréé xltm car j'y ai créé une macro de mise
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"
Re bonsoir,

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


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




Misange
Le #5026221
Ok. Pour le classeur, je l'ai recréé xltm car j'y ai créé une macro de mise
en forme personnalisée avant impression.
OK mais ce n'est pas un modèle donc il faut lui mettre une extension

xlsm et pas xltm

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.


Ma suggestion était de rajouter l'extension derrière modèle mensuel...
Workbooks.Add(ThisWorkbook.Path & "modèlemensuel****.XLSX*****").SaveAs
(ThisWorkbook.Path & "" & ClassDest)

Misange

Publicité
Poster une réponse
Anonyme