cs_Sept
Messages postés6Date d'inscriptionjeudi 3 juillet 2003StatutMembreDernière intervention30 octobre 2003
-
3 juil. 2003 à 15:52
cs_Sept
Messages postés6Date d'inscriptionjeudi 3 juillet 2003StatutMembreDernière intervention30 octobre 2003
-
5 juil. 2003 à 20:31
Mes cheveux vous en seraient très reconnaissant, car bientôt je n'en n'aurai plus à force de me les arracher, voici mon problème :
J'ai créer un "Bouton Enregitrer" :
Private Sub BoutonEnregistre_Click()
Load FenêtreEnregistre
If FenêtreEnregistre.TexteEnregistrement = "" Then
NomFichierDéfault = "CP " & Format(Date, "yy-mm-dd") & "-0" & Range("I3")
FenêtreEnregistre.TexteEnregistrement = NomFichierDéfault
End If
FenêtreEnregistre.Show
End Sub
Et un UserForm (FenêtreEnregistre) avec un textbox dans lequel un nom par défaut s'affiche,
mais que l'on peut changer :
Private Sub FenêtreEnregistre_Initialize()
Load FenêtreEnregistre
End Sub
----------------------------------------------------------------------
Private Sub BoutonOK_Click()
CheminFichier = "C:\Consignes Permanentes\Archives CP"
NomFichier = FenêtreEnregistre.TexteEnregistrement & ".xls"
CheminEtNomFichier = CheminFichier & NomFichier
If Len(Dir(CheminEtNomFichier)) Then
Reponse = MsgBox(NomFichier & " existe déjà !", 49, "Overwrite ?")
If Reponse = vbOK Then
Kill CheminEtNomFichier
ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichier
End If
Else: ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichier
End If
Dim Wb As Workbook
Dim ConsignePermanente As String
ConsignePermanente = ActiveWorkbook.Name
For Each Wb In Workbooks
If Wb.Name <> ConsignePermanente Then
Wb.Close savechanges = True
End If
Next Wb
FenêtreEnregistre.Hide
End Sub
----------------------------------------------------------------------
Private Sub BoutonAnnuler_Click()
FenêtreEnregistre.Hide
End Sub
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 4 juil. 2003 à 10:19
salut
deja une petite remarque : CONNAIS TU LES COMMON DIALOGs parce que la tu te casse le ... enfin ce n'est qu'une question et un conseil : jette un oeuil du coté des common dialog : tu n'auras alors plus que 10 lignes à ecrire au maximum
pour ton prb :
For Each Wb In Workbooks
If Wb.Name <> ConsignePermanente Then
Wb.Close savechanges = True
End If
Next Wb
wb.close ferme le workbook donc supprime la référence à activeworkbook (enfin je pense)
si tu ferme le worbook actif : activeworkbook n'existe plus à moins que tu active un autre workbook
si c pas ca pourrais tu me dire ou l'erreur apparait ?
cs_Sept
Messages postés6Date d'inscriptionjeudi 3 juillet 2003StatutMembreDernière intervention30 octobre 2003 4 juil. 2003 à 17:56
Salut,
Merci pour ta réponse,
J'ai simplifié depuis, mais toujours un pb, j'ai constaté que sous Excel 97 tout marche, mais pas sous 2000, une sugestion?
Private Sub BoutonOK_Click()
CheminFichier = "C:\Consignes Permanentes\Archives CP"
NomFichier = FenêtreEnregistre.TexteEnregistrement & ".xls"
CheminEtNomFichier = CheminFichier & NomFichier
If Len(Dir(CheminEtNomFichier)) <> 0 Then
Reponse = MsgBox(NomFichier & " existe déjà !", 49, "Overwrite ?")
If ActiveWorkbook.Name <> NomFichier And Reponse = vbOK Then
ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichier
Else If ActiveWorkbook.Name NomFichier And Reponse vbOK Then
ActiveWorkbook.Save
End If
End If
Else: If Len(Dir(CheminEtNomFichier)) = 0 Then ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichier
End If
Unload FenêtreEnregistre
End Sub
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 4 juil. 2003 à 18:15
salut
moi j'ecrirais ca :
Private Sub BoutonOK_Click()
CheminFichier = "C:\Consignes Permanentes\Archives CP"
NomFichier = FenêtreEnregistre.TexteEnregistrement & ".xls"
CheminEtNomFichier = CheminFichier & NomFichier
If Len(Dir(CheminEtNomFichier)) Then 'c plus rapide sans <> 0
'je comprends pas pourquoi tu mets une question sans vbyesno et puis c mieux de mettre les nom que les valeurs
Reponse = MsgBox(NomFichier & " existe déjà !", vbyesno + vbexclamation, "Overwrite ?")
If (ActiveWorkbook.Name <> NomFichier) And (Reponse = vbyes) Then ' les parentheses pour la clareté
ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichierElseIf (ActiveWorkbook.Name NomFichier) And (Reponse vbyes) Then ' elseif permet d'eviter un if then endif dans un else
ActiveWorkbook.Save
End If
Else ' pas besoins d'autre condition si pas <> 0 alors = 0
ActiveWorkbook.SaveCopyAs Filename:=CheminEtNomFichier
End If
Unload FenêtreEnregistre
End Sub
tu as toujours le meme prb ? si oui à quelle ligne ?
cs_Sept
Messages postés6Date d'inscriptionjeudi 3 juillet 2003StatutMembreDernière intervention30 octobre 2003 5 juil. 2003 à 13:51
Salut,
encore le pénible...
Après avoir remplacer ma procédure, comme d'hab :
Erreur d'exécution '75'
Objet spécifié introuvable (alors qu'il le trouve 2 fois au début!)
Le débogage me renvoie sur "Load FenêtreEnregistre", de feuil1 :
Private Sub BoutonEnregistre_Click()
Load FenêtreEnregistre
If FenêtreEnregistre.TexteEnregistrement = "" Then
NomFichierDéfault = "CP " & Format(Date, "yy-mm-dd") & "-0" & Range("I3")
FenêtreEnregistre.TexteEnregistrement = NomFichierDéfault
End If
FenêtreEnregistre.Show
End Sub
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 5 juil. 2003 à 17:03
salut
je vois pas bien :
faut insister... recompiler... redemarrer vba...
si tu retapes FenêtreEnregistre.Hide quand tu tapes le point normalement une liste déroulante apparait, si elle apparait pas c que le déboggeur est pas content mais pourquoi...