Macro permettant d'ouvrir différents fichier Excel

Bonjour, j'aimerais créer différentes macro, me permettant d'ouvrir différents fichier excel, renseigner les différents champs dans ces fichiers, les fermer et les enregistrer.

Je souhaiterais faire un truc assez conviviale, car c'est pour des personnes vraiment novices dans le monde du PC.

Il faudrait qu'ils cliquent soit sur le bouton "ANTARGAZ" ou sur le bouton "PRIMAGAZ", comme cela soit le fichier Antargaz ou Primagaz s"ouvre et la ils renseignent uniquement les champs et en fermant il y a un enregistrement automatique avec si possible la date au niveau de l'onglet.

Un plus serait qu'une fois les champs renseigner qu'il y ai une macro sur chaque fichier, permettant de la transformer en pdf et de l'envoyer par email à une listes de destinataires.

Encore merci de votre aide.

9antargaz.xlsm (469.76 Ko)
12primagaz.xlsx (14.52 Ko)

Bonjour

ce n'est pas encore actif mais est-ce que se serai dans ce style ?

j'ai regroupé le tout

crdlt,

André

Oui ça serait dans ce style (très bonne approche), mais ne serait-il pas plus simple que lorsque l'on click sur Primagaz la fiche Primagaz s'ouvre et de même pour Antargaz.

Ensuite, ils renseignent les champs des différentes fiches, et en cliquant sur un bouton cela converti la fiche en PDF et l'envoie à une liste de destinataires avec si possible la date de création du document afin de pouvoir suivre la date de retrait des marchandises.

Il faudrait, un truc assez simple à reproduire, car nous aurions d'autres fiches à intégrer par la suite.

Merci à toi.

Re,

Super alors, on supprime les Userforms ce qui facilitera la tâche et avec moins de complications,

Oui je pense que c'est le mieux, j'ai créer le style d'architecture que nous aimerions, est-ce que cela est possible via des macros

Cordialement

14architecture.xlsx (27.39 Ko)

Re,

bon un début, reste plus qu'à enregistrer en .pdf et effectuer sur toutes les autre feuilles

création d'une nouvelle feuille avec n° dans Primagaz

Impeccable, je teste cela lundi matin au bureau car sur le mac (je n'ai pas adobe reader) et pas outlook.

Est-ce que l'envoi du pdf par email est automatisé pour une liste de destinataires?

Est-il possible de supprimer également les macros inutiles, car je pense qu'il doit y en avoir (notamment celle que j'vais déjà crées) et également faire les autres feuilles comme primagaz (à moins que tu m'expliques comment faire).

En tout cas c'est exactement ce que nous voulions

Encore merci à toi c'est du super boulot

Bonjour toutes et tous et bon week end

Voilà,

  • création d'une nouvelle feuille par bouton simple avec confirmation
  • création pdf par bouton simple avec confirmation
  • demande de confirmation de fermeture du classeur par msgbox (ThisWoorkbook)
  • à l'ouverture du classeur se place sur l'onglet MENU (ThisWoorkbook)

Note :

  • format .pdf en demande de confirmation si oui si non on stoppe la procédure, il suffira d'enregistrer le pdf, attention toutefois cette procédure crééer une nouvelle feuille dans le classeur et la supprime elle est dite temporaire (temp)
  • imprimer la feuille active dans son état

bon , le problème, j'ai aucune idée pour l'envoi par mail de ton code de ton module 'courriel', j'ai une version d'Excel un peu vieillotte et, il me sera impossible de te donner un coup de pouce

crdlt,

André

Encore un grand merci, je vais essayer tout cela lundi matin au bureau.

Et surtout voir lorsque l'on click sur le pdf il y aura un envoi par email via Outlook.

Encore un grand bravo

Bon WK à toi

Cordialement

Re,

après il faut adapter à chaque feuilles

vu ici par Vh_AE merci à lui:

https://forum.excel-pratique.com/excel/macro-conversion-xlsm-en-pdf-et-envoie-par-mail-de-ce-pdf-t98233.html

Sub Enregistrer_PDF()
Dim mois As String
mois = Range("C3").Value
Dim ann As String
ann = Range("B3").Value
Dim dest As String
dest = "destination du fichier"
If Dir(dest) = "" Then
MsgBox "Le répertoire de destination n'existe pas."
Exit Sub
End If

dest = "destination du fichier"                        ' mettre adresse email

  With Sheets("MAFEUILLE").PageSetup                    ' remplacer MAFEUILLE
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0)
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
  End With
Sheets("Ligne éditoriale").ExportAsFixedFormat Type:=xlTypePDF, Filename:=dest
ThisWorkbook.FollowHyperlink dest
End Sub

Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim mois As String
mois = Range("C3").Value
Dim ann As String
ann = Range("B3").Value
Dim Nom_Fichier As String
Nom_Fichier = "CHEMINENTIERDUFICHIER"              ' chemin entier du fichier

If Dir(Nom_Fichier) = "" Then                       ' NOM du fichier
Call Enregistrer_PDF
End If

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------
  'Exemple pour envoyer un classeur en pièce jointe
  'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
  'If Nom_Fichier = "Faux" Then Exit Sub
'---------------------------------------------------------
  'Ou bien entrer le path et nom du fichier autrement

    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
    With oBjMail
        .To = "Stadressemail@mail.com"          ' le destinataire 
      ' .CC = "copie@autremail.fr"
       .Subject = "OBJET DU MAIL"             ' l'objet du mail
      .Body = "Bonjour, cordialement"          'le corps du mail ..son contenu
      .Attachments.Add Nom_Fichier '"CHEMIN DU FICHIER A METTRE EN PJ" ' ou Nomfichier
      .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
     '.send               ' pour envoyer le mail (perso je l'ai retiré pour vérification et personnalisation du mail) ' A ACTIVER on retire le '
   End With
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Merci, c'est à dire que je copie et colle ton code VBA sur chaque feuille et j'ai juste à changer le nom de l'onglet ou faut il que je fasse autre chose?

Car sur les feuilles, il y a déjà du code VBA, je ne vois vraiment pas ou le mettre.

Re,

Non, il faut l'adapter, tester et modifier certaines lignes de cette macro

le mieux pour tester cet macro et de créer un classeur avec de 2 onglets (Menu et Primagaz)

afin de voir si cela fonctionne

crdlt,

André

Il faut donc que je créer un autre module et que je colle ton code VBA dedans et à partir de là on affecte cette nouvelle macro à un bouton "envoi email"?

Est-ce que j'ai bien compris, ce que tu voulais dire?

Cdlt

Re,

oui et non, je regarde avec cette feuille ci-dessous,

pas encore mis la macro, je regarde

Ok, encore un grand merci

Bonjour, suite à différentes modifications et améliorations qui à 1ère vue fonctionnent correctement, est-il possible de savoir comment :

Intégrer la copie de la nouvelle feuille, juste avant l'originale et non pas comme dernier onglet.

Existe t'il un moyen au niveau du menu, de telle manière que lorsque l'on clique sur une demande et bien que cette dernière aille directement sur la bonne page (je m'explique, quand je vais créer une copie du feuillets "Piles" qui sera nommé "Piles_1" et bien dans le menu quand je vais cliquer sur Piles et bien je serais rediriger vers Piles et la j'aimerais être rediriger vers ma dernière copie notamment "Piles_1"

https://www.cjoint.com/c/GInnLADErYu

Merci de votre aide.

Bonjour,

Quand, j'effectue un clic sur l'onglet' Pile'

et/ou sur l'onglet du ' Menu' en cliquant sur le bouton 'Pile'

et un autre clic sur le bouton 'dupliquer la feuille', je suis automatiquement sur la nouvelle feuille 'Pile_EST_NICE' et, je suis également sur la cellule A1 de la feuille

heu, ...

en attente ...

crdlt,

André

Je suis entièrement d'accord avec toi.

Mais au fil des demandes les évacuations vont augmenter et par conséquents les onglets aussi, est-il possible de rajouter dans le nom de l'onglet la date de création de la nouvelle fiche. Cela afin de faire des recherches beaucoup plus rapides en fonction des dates de création.

Encore merci

Est-il possible d'avoir comme nom d'onglet "Piles_NICE EST_dd-mm-aa"

Re,

En cellule A3

j'ai mis :

=CONCATENER(D2&CONCATENER("_ ";TEXTE(C2;"jj-mm-aaaa")))

je bloque sur :

Sub CopyantgSheetRename()
Dim Cpt8 As Byte
If MsgBox("Sind Sie sicher, dass Sie dieses Blatt duplizieren möchten? ", vbYesNo + vbInformation, _
"Bestätigungsanforderung Verkauf Eintrag") = vbYes Then

On Error Resume Next
For Cpt8 = 1 To 1
  With ActiveWorkbook.ActiveSheet
    .Copy After:=Worksheets(Worksheets.Count)
  End With
ActiveSheet.Name = "Verkauf_Eintrag_" & Cpt8 & "_" & Sheets("Verkauf Eintrag").Range("A3")
Next Cpt8
Else
Sheets("Verkauf Eintrag").Range("A1").Select
End If
End Sub

Je bloque sur cela :

ActiveSheet.Name = "Verkauf_Eintrag_" & Cpt8 & "_" & Sheets("Verkauf Eintrag").Range("A3") ????

sur la cellule A3 me donne correctement après c'est la duplication de la feuille qui cause un souci

SC36_ 10-09-2017

EDIT : le fichier n'est pas encore bon manque juste cela la fameuse date

16copie-test-002.xlsm (51.88 Ko)
Rechercher des sujets similaires à "macro permettant ouvrir differents fichier"