Erreur 1004 macro avec bandeau excel

tactic6

XLDnaute Impliqué
Bonjour,
(Post déplacé)

pourriez vous me dire ce qui est incompatible avec le ruban d'excel dans cette ligne ?
ActiveWorkbook.SaveAs DossierSauvegarde & Nomfichier & " " & Ext, xlExcel8

erreur d'exection 1004
....plusieurs raisons possibles
- le nom du fichier ou le chemin n'existe pas
- ce fichier est actuellement utilisé par un autre programme
- le classeur que vous avez essayé d'enregistrer porte le meme nom qu'un classeur actuellement ouvert

par contre avec une macro classique tout ce passe bien
une idée ??
Voici le code complet
Option Base 1
Sub Enregistrer_Facture(ByVal control As IRibbonControl)
Dim Tablo(1, 6)
Dim tabloErreur As Variant
Dim tabloMsg As Variant
Dim tabloFacture As Variant
Dim msg As String
Dim Msg1 As String
Dim Msg2 As String
Dim F1 As Worksheet
Dim F2 As Worksheet
Dim Derli As Long
Dim i As Integer

'initialisation des variables
Set F1 = Sheets("SAISIE")
'Set F2 = Sheets("Recap_Facture")
' affectaction des valeurs de cellules au tableau
Tablo(1, 1) = F1.[C12]
Tablo(1, 2) = F1.[G5]
Tablo(1, 3) = F1.[J6]
Tablo(1, 4) = F1.[G8]
Tablo(1, 5) = F1.[H12]
Tablo(1, 6) = F1.[J59]
'Gestion des cellules non renseignées
tabloErreur = Array("", "Date", "")
tabloMsg = Array("nom", "date", "numéro")
Msg1 = "Il n'y a pas de "
Msg2 = ", la facture ne peut pas être enregistrée."
'boucle pour l'affichage des cellules non remplies
For i = 3 To 1 Step -1
If Tablo(1, i) = tabloErreur(i) Then msg = msg & vbLf & Msg1 & tabloMsg(i) & Msg2
Next i
'si une condition remplie, affichage du message d'erreur et fin de Sub
If Not msg = "" Then MsgBox msg: Exit Sub
' controle ligne TVA
For i = 15 To 52
If F1.Cells(i, "J").Value <> "" And _
F1.Cells(i, "K").Value = "" Then _
MsgBox "la cellule " & Cells(i, "K").Address & " est vide.": End
Next i
'Recherche de la dernière ligne de l'onglet "Recap_Facture"
'Derli = F2.Columns("A").Find("*", , , , , xlPrevious).Row ' + 1

'Gestion des doublons
'Gestion des doublons
'tabloFacture = F2.Range("C1:C" & Derli).Value
'si doublon, affichage du message et fin de Sub
'If Not IsError(Application.Match(Tablo(1, 3), tabloFacture, 0)) Then _
' MsgBox "Le numéro de la facture """ & Tablo(1, 3) & """ existe déja!": Exit Sub

'insertion des données sur Recap_Facture
'Derli = Derli + 1
'F2.Cells(Derli, "I").Value = Now
'F2.Range("A" & Derli & ":F" & Derli).Value = Tablo

Const DossierSauvegarde As String = "D:\Données\Sauvegarde1\"
Const DossierSauvegarde2 As String = "D:\Données\Sauvegarde2\"
Const DossierSauvegarde3 As String = "E:\Sauvegarde\"
Dim AWbk As Workbook
Dim LaFin As String
Dim Ext As String
Dim NomClasseur As String
Dim Nume As String
Set AWbk = ActiveWorkbook

'nom du classeur sans l'extension
NomClasseur = Left(AWbk.Name, Len(AWbk.Name) - InStr(1, StrReverse(AWbk.Name), "."))
'extension
Ext = Right(AWbk.Name, InStr(1, StrReverse(AWbk.Name), "."))
'date et heure
'LaFin = Format(Now, "dd-mm-yy hh-mm-ss")
'on définit ce que sera Nomfichier
'ce sera la cellule G3 + H3 de la feuille nommée Facture
Nomfichier = Sheets("SAISIE").Range("G6") & " " & Sheets("SAISIE").Range("J6") & " " & Sheets("SAISIE").Range("g8")
'LaFin = Cells("H8" & "J6").Value
'enregistrement des copies
Nume = [SAISIE!J6]
Sheets("Recap_Facture").Copy

ActiveWorkbook.SaveAs DossierSauvegarde & Nomfichier & " " & Ext, xlExcel8
ActiveWorkbook.Close
Nume = [SAISIE!J6]
Sheets("SAISIE").Copy
ActiveWorkbook.SaveAs DossierSauvegarde2 & Nomfichier & " " & Ext
ActiveWorkbook.SaveAs DossierSauvegarde3 & Nomfichier & " " & Ext


ActiveWorkbook.Close
If MsgBox("Voulez vous Imprimer cette Facture ?", vbYesNo) = vbYes Then _
Beep
ActiveSheet.PageSetup.PrintArea = "$B$2:$K$63"

ActiveSheet.PrintPreview
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:=True


End Sub

Bien sur
- le nom du fichier ou le chemin n'existe pas
- ce fichier est actuellement utilisé par un autre programme
- le classeur que vous avez essayé d'enregistrer porte le meme nom qu'un classeur actuellement ouvert
tout ça a été vérifié
Merci
 
C

Compte Supprimé 979

Guest
Re : Erreur 1004 macro avec bandeau excel

Salut Tactic6,

Es-tu certain que la déclaration de tes constantes est au bon endroit !?

En général on les mets tout en haut du module
Code:
Option Base 1
Const DossierSauvegarde As String = "D:\Données\Sauvegarde1\"
Const DossierSauvegarde2 As String = "D:\Données\Sauvegarde2\"
Const DossierSauvegarde3 As String = "E:\Sauvegarde\"

Sub Enregistrer_Facture(ByVal control As IRibbonControl)
...
End Sub
De plus, tu ne définis nulle part la variable "AWbk"
Donc les instructions :
Code:
'nom du classeur sans l'extension
NomClasseur = Left(AWbk.Name, Len(AWbk.Name) - InStr(1, StrReverse(AWbk.Name), "."))
'extension
Ext = Right(AWbk.Name, InStr(1, StrReverse(AWbk.Name), "."))
ne peuvent pas fonctionner correctement !?

Essayes de passer en mode déboggage pas à pas, pour voir les valeurs de chaque variable

A+
 

tactic6

XLDnaute Impliqué
Re : Erreur 1004 macro avec bandeau excel

Re

je n'ai pas réussi à réaliser le debogage par contre j'ai compilé VBAProject et mon erreur est devenu
erreur 1004
impossible d'utiliser cette extension avec le fichier sélectionné
Modifiez le nom du fichier dans la zone de texte Nom du fichier ou sélectionnez un autre type de fichier dans la zone Type du fichier

j'y comprend rien quelqu'un peut me traduire ce que je dois faire ?
merci
 

Discussions similaires

Statistiques des forums

Discussions
312 188
Messages
2 086 026
Membres
103 099
dernier inscrit
myseb