Enregistrer feuille excel impératif 2 cel dif

Résolu/Fermé
BABAR07 - 20 févr. 2011 à 10:17
 BABAR07 - 21 févr. 2011 à 18:28
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.

A voir également:

4 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 févr. 2011 à 13:47
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
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
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 20/02/2011 à 20:30
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.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 févr. 2011 à 11:38
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+
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/02/2011 à 12:04
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.
0
Je te remercie beaucoup de ta macro, elle fonctionne parfaitement , et c'est exactement ce que je désirais.
Grand merci à toi
Cordialement
0