Macro : supprimer surlignage, imprimer et rétablir surlignag

Bonjour à tous,

Je voudrais pouvoir imprimer une page sans les surlignages (pour économiser sur les cartouches...).

Pour cela, j'enregistre une macro :

  • sélection de toutes les cellules
  • bouton aucun remplissage dans le surlignage
  • bouton imprimante (ou imprimer/ok)
  • flèche "annuler dernière action"
et ma macro est vide !!

Après plusieurs essais, je constate que c'est la flèche "annuler" qui n'est pas correctement transformée en code, je suppose.

Je pourrais recréer mes surlignages dans la macro, mais il en est de même pour les surlignages ajoutés par les "Mise en forme conditionnelle", bien sûr. Et là, c'est beaucoup plus compliqué...

Je joins mon fichier au cas où et j'ouvre une deuxième question, concernant toujours les macros dans ce fichier.

Merci d'avance, et surtout Bonne et Heureuse Année à tous, pleine de tous ces petits instants de bonheur qui nous font oublier les tracas et embûches qui émaillent notre quotidien.

M

Bonsoir,

Je joins mon fichier au cas où ....

Oubli ?

Quand tu enregistre une macro, n'oublie pas d'arrêter l'enregistrement (à la fin)

Quoi qu'il en soit, la macro ne te remettra pas le surlignage avec <<flèche "annuler dernière action">>

Tu as la solution de copier la feuille, supprimer le surlignage, imprimer et supprimer la feuille copiée,

une macro sait faire çà, mais cela en vaut-il la peine !!

Amicalement

Claude.

Bonsoir,

Merci pour ta réponse, ok pour l'impossibilité "d'enregistrer" un retour arrière dans une macro.

Je faisais bien Arrêter l'enregistrement.

Ta solution est néanmoins intéressante dans la mesure où l'utilisation de cette feuille est commune à un certain nombre de personnes, et que j'essaie de rendre le plus automatique possible certaines fonctions.

J'avais omis de joindre le fichier, ce que je fais à nouveau, avec cette nouvelle question (j'abuse...).

Dans ma feuille, je veux copier la dernière ligne vide du § "Chantiers", (actuellement la ligne 16), avec ttes ses formules et ses mises en forme conditionnelles, et faire insérer, de manière à insérer de nouvelles lignes au fur et à mesure que chacun remplit le tableau (et pas insérer des lignes totalement vides !!).

Bien évidemment, le premier ajout de ligne décale ce n° (16 dans l'exemple), et ensuite, la macro copie et insère une ligne avec des données.

Ma question est donc : comment faire en sorte que ce chiffre 16 soit indexé (par le contenu d'une cellule itérative, par exemple) pour toujours prendre la dernière ligne (que je masquerai lorsque j'aurai une solution...)

Rows("16:16").Select

Selection.Copy

Selection.Insert Shift:=xlDown

Merci d'avance.

M

Bonjour,

Essaie ce code auquel tu associes un bouton

Sub test()
'Macro dan le 3/1/2010
Dim lig As Integer
lig = ActiveCell.Row
With Range("A" & lig & ":Z" & lig)
    .Copy
    .Insert Shift:=xlDown
    .ClearContents
End With
End Sub

Fonctionnement :

  • sélectionne une cellule dans la ligne à recopier
  • clique sur ton bouton associé à ce code
Le code créera une ligne identique à celle sur laquelle se trouve ton curseur.

Amicalement

Dan

Bonjour à tous,

Bonjour Dan, ton code copie la ligne mais efface les formules !

J'avais commencé à regarder,

J'ai ajouté 4 repères de lignes (masquées) nommés: "Top1" à "Top4"

Utilise tes raccourcis clavier pour ajouter ligne

"Ctrl+Maj+P" pour insérer feuille "impr", sans couleurs ni MFC

Amicalement

Claude.

20stouvenel-m.zip (21.04 Ko)

re,

oups, ... Merci Claude

Le code corrigé

Sub test()
'Macro dan le 3/1/2010
Dim lig As Integer
lig = ActiveCell.Row
With Range("A" & lig & ":Z" & lig)
    .Copy
    .Insert Shift:=xlDown
End With
Union(Range("A" & lig & ":J" & lig), Range("L" & lig & ":N" & lig), _
    Range("P" & lig & ":R" & lig), Range("T" & lig & ":V" & lig), _
    Range("y" & lig & ":Z" & lig)).ClearContents
End Sub

Amicalement

Dan

5btsag-exp.xlsx (55.40 Ko)

Bonjour à tous,

Je viens d'arriver à la maison après 400 km de route, et je constate que vous n'êtes pas restés inactifs pendant que j'étais sur la route, Merci !

Je regarde tout ça de suite, et je vous rends compte.

Merci encore, à bientôt.

Michel

-- Dim Jan 03, 2010 9:57 pm --

Re-bonjour,

Claude, ton principe d'insertion de lignes fonctionne super bien.

J'essaierai quand même le code de Dan par curiosité, bien sûr.

Pour l'impression sans surlignages, super aussi, j'ai ajouté l'ordre d'impression et la suppression de la feuille "impr" :

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Sheets("impr").Select

ActiveWindow.SelectedSheets.Delete

Par contre, je ne me débarasse pas du message "Les feuilles sélectionnées peuvent contenir des données ...,cliquez sur Supprimer" bien que je l'aie inclus dans mon enregistrement de macro (ne connaissant pas VBA, je procède de cette manière, bien sûr).

Je suppose qu'on peut inclure l'acceptation dans la macro ?

Voilà, merci encore,

Et encore tous mes voeux pour cette nouvelle année.

Michel

Bonsoir à tous,

pour l'impression

Sub FeuilleImprime() 'Ctrl+Shift+P
    If Sheets(1).Name = "impr" Then Exit Sub
    Application.ScreenUpdating = False
    Sheets("Récap").Copy Before:=Sheets(1)
            Application.DisplayAlerts = False
        With ActiveSheet
            .Cells.FormatConditions.Delete
            .Cells.Interior.ColorIndex = xlNone
            .Name = "impr"
            .PrintOut Copies:=1
            .Delete
        End With
End Sub

Bonne soirée

a resolu2
11classeur1.xlsx (38.42 Ko)
Rechercher des sujets similaires à "macro supprimer surlignage imprimer retablir surlignag"