Enregistrer feuille excel impératif 2 cel dif

[Résolu/Fermé]
Signaler
-
 BABAR07 -
Bonjour,
Je posséde Excel 2007, serait-il possible d'avoir une macro qui m'enregistre la feuille active DEVIS-FACTURE en format PDF dans le dossier DEVIS sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13) et cette même feuille active en format xls (modifiable ) dans le dossier FACTURE sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13)
En remerciant à l'avance toutes les grosse têtes qui solutionneront mon prob.

4 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 181
Bonjour,
Je possède Excel 2007, serait-il possible d'avoir une macro qui m'enregistre...
Si tu pouvais nous mettre le code que tu a déjà fait, même s'il ne fonctionne pas, pour pouvoir au moins situer ce que tu veux faire.
A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Bonjour,
voici la macro que j'ai.
nomfich = Worksheets("DEVIS-FACTURE").[B11]
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\User\Bureau\DEVIS\" & nomfich & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
nomfich = Worksheets("DEVIS-FACTURE").[C13]
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\User\Bureau\DEVIS\" & nomfich & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Dim Numfacture As Long
Numfacture = Sheets(1).Range("A11").Value
Numfacture = Numfacture + 1: [B11] = [B11] + 1
Sheets(1).Range("A11").Value = Numfacture
Sheets("DEVIS-FACTURE").Select
Range("A17").Select
End Sub
Si tu pouvait me dépanner, merci à l'avance
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 181
Pour le nom du fichier...
  With Sheets("DEVIS-FACTURE") 
        nomfich = "D" & .Range("B11") & " " & .Range("C13") 
    End With

Pour le xls..
Ont ne peu pas sauver une feuille et qu'elle soit modifiable, faut la copier dans un classeur et sauver ce nouveau classeur.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 181
Rectification : Avec le 2007 ont peu enregistrer directement une feuille.
Le code complet (j'ai testé et ça fonctionne)
Sub Copie()
Dim NomFich As String
    Application.DisplayAlerts = False
    With Sheets("DEVIS-FACTURE")
        NomFich = "D" & .Range("B11") & " " & .Range("C13")
        .SaveAs "C:\Documents and Settings\User\Bureau\FACTURE\" & NomFich & ".xls", xlExcel8
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Documents and Settings\User\Bureau\DEVIS\" & NomFich & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    End With
    Application.DisplayAlerts = True
End Sub

J'ai supposer que le nom du dossier facture était FACTURE.
A+
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 181
Je viens de constater que la copie de la feuille n'est pas optimum, notamment met 3 feuilles, sauve également le code VBA...
Un peu plus long mais fonctionne mieux...
Sub Copie() 
Dim NomFich As String, WkbC As Workbook, Wkb As Workbook 
    Application.DisplayAlerts = False 
    Set Wkb = ActiveWorkbook 
    With Sheets("DEVIS-FACTURE") 
        NomFich = "D" & .Range("B11") & " " & .Range("C13") 
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
        "C:\Documents and Settings\User\Bureau\DEVIS\" & NomFich & ".pdf", Quality:= _ 
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
        OpenAfterPublish:=False 
    End With 
     
    Set WkbC = Workbooks.Add(xlWBATWorksheet) 
    Wkb.Sheets("DEVIS-FACTURE").Copy Before:=WkbC.Sheets(1) 
    WkbC.Sheets(2).Delete 
    WkbC.SaveAs "C:\Documents and Settings\User\Bureau\FACTURE\" & NomFich & ".xls", xlExcel8 
    WkbC.Close 
    Application.DisplayAlerts = True 
End Sub

A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Je te remercie beaucoup de ta macro, elle fonctionne parfaitement , et c'est exactement ce que je désirais.
Grand merci à toi
Cordialement