Debutant - Probleme Microsofts CommonDialog manquant
star42
Messages postés2Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention 5 juin 2009
-
5 juin 2009 à 09:21
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 2016
-
5 juin 2009 à 12:03
bonjour..
j'ai un ami qui m'avais bidouiller de quoi faire une facture, devis avec article, client sous excel. et c'était en 2000.
et j'essaye de réutiliser ce programme avec XP et office 2003.. j'ai apparemment un problème de compatibilité de version VB... j'ai une erreur qui se produit "projet ou blibliotheque manquant" et quand je verifie il manque Microsoft CommonDialog.
Le probleme c'est que je ne connai rien sur VB.. si vous pouviez m'aider ?
d'avance merci
1ere partie de la source ou il s'arrete avec l'erreur
Private Sub bt_new_fact_Click()
'Bouton ajouter une facture
Dim last_num_fact As Long, new_num_fact As Long
Dim nom_fact$, chemin$, nom_compl$
'ouvrir le modele
Workbooks.Open Filename:="C:\facturationpro\facture.xls", ReadOnly:=True
'lire n° de derniere facture
last_num_fact = Workbooks("csp.xls").Worksheets("depart").Range("I2")
new_num_fact = last_num_fact + 1
'nouveau numfact dans modele de facture
Workbooks("facture.xls").Worksheets("modele").Range("G4") = last_num_fact
'date dans modele de facture
Workbooks("facture.xls").Worksheets("modele").Range("D4") = Date$
'n° pour prochaine facture
Workbooks("csp.xls").Worksheets("depart").Range("I2") = new_num_fact
'enregistrer sous un nouveau nom
chemin$ = "C:\facturationpro\factures"
nom_fact$ = Trim$(Str$(last_num_fact)) + ".xls"
Workbooks("facture.xls").SaveAs Filename:=chemin$ + nom_fact$ 'sauver sous
End Sub
A voir également:
Debutant - Probleme Microsofts CommonDialog manquant
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 5 juin 2009 à 10:10
Bonjour
Il n'y a pas d'appel à CommonDialog dans cette partie, dans VBE (Outils/Macro / VIsual Basic Editor) ajoute lka référence (Outils/Référence)
Essaye de créer l'arborescence c:\facturation\pro\facture
et le fichier c:\facturationpro\facture.xls avec une feuille qui porte le nom "modele"
Dim bcname$
bcname$ = ActiveWorkbook.Name 'nom du devis ouvert
'confirmer la conversion
rep = MsgBox("Convertir le devis en facture ?", vbOKCancel, "Conversion")
If rep = vbCancel Then 'annuler la conversion
'fermer le devis
Workbooks(bcname$).Close (True)
Exit Sub
Else
'effectuer la conversion
'créer nouvelle facture
Dim facname$, ncli$, codeart$, qtart As Long, remise As Double, libele$
Dim dt_ar, cd_ar$, mont_ar As Double, li As Long, numchq$
Call bt_new_fact_Click
facname$ = ActiveWorkbook.Name 'nom de la nouvelle facture
'copier les données du devis vers facture (Num client, données arrhes)
ncli$ = Workbooks(bcname$).Worksheets("modele").Range("J4").Value
dt_ar = Workbooks(bcname$).Worksheets("modele").Range("E63").Value
cd_ar$ = Workbooks(bcname$).Worksheets("modele").Range("G63").Value
mont_ar = Workbooks(bcname$).Worksheets("modele").Range("K63").Value
numchq$ = Workbooks(bcname$).Worksheets("modele").Range("I63").Value
'scanner les lignes du devis, et transférer dans facture
codeart$ = Workbooks(bcname$).Worksheets("modele").Cells(li, 2).Value
If Val(codeart$) = 0 Then 'pas de ref
libele$ = Workbooks(bcname$).Worksheets("modele").Cells(li, 3).Value
If libele$ <> "" Then 'lignes sans ref
Workbooks(facname$).Worksheets("modele").Cells(li, 3) = libele$
GoTo st
Else
GoTo st
End If
End If
Workbooks(facname$).Worksheets("modele").Cells(li, 2) = codeart$
Workbooks(facname$).Worksheets("modele").Cells(li, 7) = qtart
If Val(remise) <> 0 Then
Workbooks(facname$).Worksheets("modele").Cells(li, 9) = remise
End If
st:
Next li
'fermer et sauver le devis
Workbooks(bcname$).Close (True)
End If
End If
End Sub
Private Sub bt_new_fact_Click()
'Bouton ajouter une facture
Dim last_num_fact As Long, new_num_fact As Long
Dim nom_fact$, chemin$, nom_compl$
'ouvrir le modele
Workbooks.Open Filename:="C:\facturationpro\facture.xls", ReadOnly:=True
'lire n° de derniere facture
last_num_fact = Workbooks("csp.xls").Worksheets("depart").Range("I2")
new_num_fact = last_num_fact + 1
'nouveau numfact dans modele de facture
Workbooks("facture.xls").Worksheets("modele").Range("G4") = last_num_fact
'date dans modele de facture
Workbooks("facture.xls").Worksheets("modele").Range("D4") = Date$
'n° pour prochaine facture
Workbooks("csp.xls").Worksheets("depart").Range("I2") = new_num_fact
'enregistrer sous un nouveau nom
chemin$ = "C:\facturationpro\factures"
nom_fact$ = Trim$(Str$(last_num_fact)) + ".xls"
Workbooks("facture.xls").SaveAs Filename:=chemin$ + nom_fact$ 'sauver sous
End Sub
Private Sub BT_newavoir_Click()
'Bouton ajouter un devis
Dim last_num_av As Long, new_num_av As Long
Dim nom_av$, chemin$, nom_compl$
'ouvrir le modele
Workbooks.Open Filename:="C:\facturationpro\avoir.xls", ReadOnly:=True
'lire n° de dernier avoir
last_num_av = Workbooks("csp.xls").Worksheets("depart").Range("I4")
new_num_av = last_num_av + 1
'nouveau numav dans modele d'avoir
Workbooks("avoir.xls").Worksheets("modele").Range("G4") = last_num_av
'date dans modele d'avoir
Workbooks("avoir.xls").Worksheets("modele").Range("D4") = Date$
'n° pour prochain avoir
Workbooks("csp.xls").Worksheets("depart").Range("I4") = new_num_av
'enregistrer sous un nouveau nom
chemin$ = "C:\facturationpro\avoirs"
nom_av$ = "avoir_" + Trim$(Str$(last_num_av)) + ".xls"
Workbooks("avoir.xls").SaveAs Filename:=chemin$ + nom_av$ 'sauver sous
End Sub
Private Sub BT_newbc_Click()
'Bouton ajouter un devis
Dim last_num_bc As Long, new_num_bc As Long
Dim nom_bc$, chemin$, nom_compl$
'ouvrir le modele
Workbooks.Open Filename:="C:\facturationpro\devis.xls", ReadOnly:=True
'lire n° de dernier devis
last_num_bc = Workbooks("csp.xls").Worksheets("depart").Range("I3")
new_num_bc = last_num_bc + 1
'nouveau numbc dans modele de devis
Workbooks("devis.xls").Worksheets("modele").Range("G4") = last_num_bc
'date dans modele de devis
Workbooks("devis.xls").Worksheets("modele").Range("D4") = Date$
'n° pour prochain devis
Workbooks("csp.xls").Worksheets("depart").Range("I3") = new_num_bc
'enregistrer sous un nouveau nom
chemin$ = "C:\facturationpro\devis"
nom_bc$ = "devis " + Trim$(Str$(last_num_bc)) + ".xls"
Workbooks("devis.xls").SaveAs Filename:=chemin$ + nom_bc$ 'sauver sous
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 5 juin 2009 à 12:03
Le code me semblant assez irréprochable au premier abort.
Je vais te demander d'acquérir de l'expérience dans les tests unitaires et résoudre tes problèmes seuls.
Voilà quelques pistes :
Quand une macro plante, on peut savoir sur quelle ligne en validant le mode déboguage ou si cela boucle en arrêtant le traitement par la combinaison de touche Ctrl +Arret défilement puis poursuite du traitement en pas à pas par actions successives sur la touche F8 et en mettant des points d'arrêts dans le code (déboguage / ajouter un espion)