Macro pdf par mail bloquée

Bonsoir Steelson,

Pour l'insertion du logo sur tous les onglets, le débogage se met sur la ligne qui commence par :

ActiveSheet.Pictures.Insert(ficimg).Select ' insertion

Je viens de faire un essai avec

Sub Macro1()
    ActiveSheet.Pictures.Insert("C:\Users\Michel\Downloads\Capture d’écran (177).png").Select
End Sub

cela fonctionne parfaitement !!

Ma question est donc : ficimg existe-t-elle vraiment sur F: ? l'onglet est-il protégé ? le réseau est-il actif et réactif ?

Essaie avec un fichier "local" sur C: ou D: selon ta config


J'ai répondu à cela page précédente

Le problème est que je n'arrive pas à faire en sorte que la largeur des colonnes définies ci dessus ne s'appliquent pas à la première feuille nommée "extraction".

Bonjour, c'est super pour la largeur des colonnes à appliquer partout sauf sur l'onglet "extraction"

Je bloque toujours pour le logo, le débogage se met au début de la ligne commençant par :

Ls.select

Dim Ls As Worksheet

Application.ScreenUpdating = False
For Each Ls In Worksheets

Dim ficimg As Variant, Plage As Range, Sht As Worksheet
Ls.Select
    ficimg = "F:\...............png" ' placer l'mage dans Votre Dossier

    If ficimg = "Faux" Then

    MsgBox "L'image nommée LOGO avec extension .png n'existe pas"
    Exit Sub 'cliquer sur annuler
    End If
Application.ScreenUpdating = False

    ActiveSheet.Pictures.Insert(ficimg).Select ' insertion
    Set Plage = [A1:B4]
    With Selection.ShapeRange
        .LockAspectRatio = False        ' proportions d'origine lorsque vous la redimensionnez
        .Top = Plage.Top           ' haut de la cellule
        .Left = Plage.Left         ' gauche de la cellule
        .Width = Plage.Width ' largeur de la cellule
        .Height = Plage.Height   ' hauteur de la cellule
    End With
    With Selection
        .PrintObject = True             ' l'objet est imprimé en même temps que le document
        .Placement = xlMoveAndSize      ' manière dont l'objet est lié aux cellules
    End With

Application.ScreenUpdating = True
Next Ls

Le débogage s’exécute, j'appuie une fois sur la touche permettant d'effacer des caractères et une fois sur la touche "entrer".

Le code reprend alors sur la ligne suivante (jaune) :

ficimg = "F:\...............png" ' placer l'mage dans Votre Dossier

Quand je fais cette manip, ça fonctionne mais je dois le faire à chaque fois que je lance la macro.

J'ai essayer en supprimant "Ls.Select", mais le logo ne se met que sur le dernier onglet.

Je ne sais pas comment faire.

Pour infos, aucun onglet n'est protégé

Je n'ai aucun problème de mon côté

Essaie le fichier ci-dessou avec un fichier image local comme demandé plus haut sous C: ou D: selon ta config micro

8ls.xlsm (22.64 Ko)

Bonsoir, j'ai suivi vos indications

J'ai adapté votre macro à mon micro en mettant les bons chemins.

Cela fonctionne très bien.

Le problème est que quand je copie et colle le code dans la macro extraction, j'ai toujours le débogage au début de la ligne commençant par : Ls.Select

Je vous joins le fichier en pièce jointe afin que vous puissiez voir un peu où est le problème.

En tous cas je vous remercie pour votre aide.

Bonne soirée

6extraction-v2.xlsm (78.52 Ko)

Ta macro coince sur la feuille "Info" masquée !!

Application.ScreenUpdating = False
Dim ficimg As Variant, Plage As Range, Sht As Worksheet
For Each Ls In Worksheets
If Ls.Name <> "Info" Then
    Ls.Select
    ficimg = "...................." ' placer l'mage dans Votre Dossier

    ActiveSheet.Pictures.Insert(ficimg).Select ' insertion
    Set Plage = [A1:B4]
    With Selection.ShapeRange
        .LockAspectRatio = False        ' proportions d'origine lorsque vous la redimensionnez
        .Top = Plage.Top           ' haut de la cellule
        .Left = Plage.Left         ' gauche de la cellule
        .Width = Plage.Width ' largeur de la cellule
        .Height = Plage.Height   ' hauteur de la cellule
    End With
    With Selection
        .PrintObject = True             ' l'objet est imprimé en même temps que le document
        .Placement = xlMoveAndSize      ' manière dont l'objet est lié aux cellules
    End With

End If
Next Ls
Application.ScreenUpdating = True

Enfin un fichier qui a permis de diagnostiquer ...

Bonjour Steelson, cela fonctionne sans débogage, un grand merci pour votre aide.

Je suis en train de modifier l'extraction mais je coince.

Le fichier permet de faire une extraction selon la colonne J : le type (Berline, Coupé, Compact)

L'extraction se colle sur la ligne 7 de chaque onglet crée.

Je voudrais modifier le code afin de réaliser une extraction selon la colonne A : numéro

et que l'extraction se colle sur la ligne 1 de chaque onglet crée.

Enfin je cherche aussi à faire une macro pour supprimer tous les onglets sauf le premier.

Je vous joins le fichier en question en pièce jointe.

Bien cordialement

Enfin je cherche aussi à faire une macro pour supprimer tous les onglets sauf le premier.

Sub supp()
For Each ws In ActiveWorkbook.Worksheets
    With ws
        If .Name <> "le_nom_du_premier_onglet" Then ws.Delete
    End With
Next
End Sub

ok super, mais comment faire pour adapter l'extraction comme l'explique le sujet précédent.

Merci d'avance.

Lorsque j'exécute la macro pour supprimer tous les onglets sauf le premier,

j'ai un message d'erreur : "Vous ne pouvez pas annuler la suppression, car il est possible que vous supprimiez certaines données. Si vous n'en avez plus besoin, cliquez sur Supprimer"

Comment supprimer les onglets directement sans avoir le message cité ci-dessus.

Encore merci

Comment supprimer les onglets directement sans avoir le message cité ci-dessus.

Sub supp()
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With
For Each ws In ActiveWorkbook.Worksheets
    With ws
        If .Name <> "nomOngletAConserver" Then ws.Delete
    End With
Next
With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

Le fichier permet de faire une extraction selon la colonne J : le type (Berline, Coupé, Compact)

L'extraction se colle sur la ligne 7 de chaque onglet crée.

Je voudrais modifier le code afin de réaliser une extraction selon la colonne A : numéro

et que l'extraction se colle sur la ligne 1 de chaque onglet crée.

Je suppose qu'il suffit de modifier cette ligne

  ColCritère = 10          ' adapter

J = 10, donc A = 1

  ColCritère = 1          ' adapter

et ensuite ceci

F.Cells(1, 1).Resize(, Ncol).Copy [A7]

deviendrait

F.Cells(1, 1).Resize(, Ncol).Copy [A1]

J'ai essayer les modifications mais j'ai un débogage sur la ligne commençant par :

F.Cells(1 + Premier, 1).Resize(I - Premier, Ncol).Copy [A8]

Je ne comprend pas trop.

J'ai mis le fichier dans le sujet précédent si jamais

J'avoue que ces macros me semblent un peu tarabiscotées ... connais-tu l'auteur ?

non mais si tu a une autre solutions je suis preneur

il faudrait reprendre tout le code et j'avoue ne pas avoir trop le temps

ton premier problème étant résolu,

et reposte un sujet ciblé sur cette nouvelle problématique pour susciter d'autres intervenants

Rechercher des sujets similaires à "macro pdf mail bloquee"