Affichage données avec macro

Bonjour,

Ma macro ne fonctionne encore pas comme je voudrais.

Voici en attaché le fichier Excel et l'explication ci-dessous de ce que voudrais obtenir à l'aide des macros.

J'ai une feuille "STOCK" qui est la base de donnée (A à H = données). Puis une autre feuille "LISTE A AFFICHER" qui est destinée à être imprimée et doit donc afficher les données de la feuille STOCK ainsi que toutes les modifications que j'apporte en feuille stock.

Si j'entre des données en "STOCK" H59, H60, H61 ça fonctionne et la LISTE A AFFICHER prend en compte ces données. Je dois pour cela cliquer sur les raccourcis macro "Tri numérique ou Tri alphabétique" de la feuille LISTE A AFFICHER. Par contre, si j'entre une donnée (feuille STOCK) en A396, par exemple "403" puis en B396 "Auteur 392" enfin en H396 "7", ces données n'apparaissent pas en feuille LISTE A AFFICHER. Il faudrait aussi que les macros décochent la valeur "zéro" (feuille LISTE A AFFICHER, colonne "E") afin que le valeurs nulles n'apparaissent pas.

Pour résumer le tout, il faudrait que toutes les modifications en feuille STOCK, plage A5 à H495, apparaissent (sans les valeurs zéros) dans la feuille LISTE A AFFICHER et si possible que la zone d'impression de ce qui est affiché se fasse automatiquement.

Merci de vous pencher sur mon souci.

19classeur1.xlsm (234.25 Ko)

Bonjour,

Fichier/option/option avancées

Thème: Afficher les options pour cette feuille de calcul

Décocher l'option: Afficher un zéro dans les cellules qui ont une valeur nulle.

Est-ce cela peut t'aider?

Ton exemple en retour

Cordialement


Bisses a écrit :

et si possible que la zone d'impression de ce qui est affiché se fasse automatiquement.

Il faudrait préciser ta demande. Je ne comprends pas ce que tu veux dire.

Cordialement

11classeur1.xlsm (244.14 Ko)

la feuille "LISTE A AFFICHER" est destinée à être imprimée et ce qui s'affiche sur cette feuille dépend des données de la feuille "STOCK". Je voudrais que lorsque il y a des ajout ou suppressions de données en feuille "STOCK", la zone d'impression de la feuille "LISTE A AFFICHER" prenne en compte ces changements afin d'éviter de passer par > mise en page > définir la zone d'impression etc. En résumé : que tout ce qui s'affiche sur la feuille "LISTE A AFFICHER" soit imprimé automatiquement ...

Bonsoir,

J'ai mis ce code dans la feuille liste à afficher.

La macro se déclenche quand on selectionne la feuille.

Option Explicit

Private Sub Worksheet_Activate()
Dim Ln As Integer
Dim ZoneImp As Variant
Ln = Range("C" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne C
ZoneImp = Range(Cells(1, "B"), Cells(Ln, "G")).Address
    ActiveSheet.PageSetup.PrintArea = ZoneImp

    With ActiveSheet.PageSetup
        .PrintTitleRows = "$5:$6"
    End With
End Sub

On peut déclencher cette macro par d'autres moyens. J'ai choisi celui-ci en pensant qu'il pouvait satisfaire.

Le fichier en téléchargement

Cordialement

14ddetp-classeur1.xlsm (246.24 Ko)

Ah parfait cette macro!, en plus elle se déclenche automatiquement à la sélection de la feuille et il me reste juste à choisir le tri numérique ou alphabétique et tout fonctionne à merveille .... mais ... tout marche sur sur ton fichier (ddetp Classeur1).

Il me reste donc à passer ta macro sur le fichier original qui est le même que celui joint mais avec d'autres données (je n'ai pas joins l'original par discrétion pour les auteurs du fichier).

J'ai donc copié ta macro puis en ai créé une vide sur laquelle j'ai copié tes données mais impossible de trouver sa trace dans mon fichier. Les autres macros ont des noms, sont visibles, modifiables etc mais pas de trace de la tienne.

En résumé, comment faire pour copier ta macro dans un autre fichier puis la faire agir ta macro dans ce fichier?

Encore merci

Je viens de m'apercevoir que lorsque des données de la feuille "STOCK" en colonne "H" sont effacées, la feuille "LISTE A AFFICHER" reporte cela et affiche les "zéro". Est-il possible que les zéros n'apparaissent jamais? En fait il ne faut pas que les valeurs nulles figurent sur la liste sauf si je les sélectionne manuellement avec le filtre.

Le principe de cette macro est qu'elle se déclenche a l'activation de la feuille.

Donc tu peux la copier dans les feuilles de ton projet original, elle devrait fonctionner. Sous réserve tout de même que pour les autres feuilles, les colonnes soient adaptées.

ddetp88 a écrit :

Je viens de m'apercevoir que lorsque des données de la feuille "STOCK" en colonne "H" sont effacées, la feuille "LISTE A AFFICHER" reporte cela et affiche les "zéro". Est-il possible que les zéros n'apparaissent jamais? En fait il ne faut pas que les valeurs nulles figurent sur la liste sauf si je les sélectionne manuellement avec le filtre.

Ce que tu voudrais c'est un filtre automatique ou bien que les lignes soient masquées ou encore que les lignes soient affichées mais que les zéros n'apparaissent plus?

En fait que toutes les valeurs 0 ne soient pas affichées y compris ce qui apparaitrait en C si la valeur était zéro.

En résumé : lorsqu'il n'y a rien (ou zéro) en colonne H de la feuille "STOCK", ça ne doit pas apparaitre dans "LISTE A AFFICHER". Dans la "LISTE A AFFICHER" il me faut que les valeurs positives (1 à 1000)

J'ai fait un peu de ménage et mis un filtre automatique dans la macro de la feuille.

Par ailleurs dans le thisworkbook, j'ai mis un code de pour protéger les feuilles pour que le filrage et les tris ne soient pas gênés.

Bonne suite

ddetp88

18ddetp-classeur1.xlsm (270.31 Ko)

Merci beaucoup ddetp88,

J'ai pu placer ta macro dans le fichier original et ça marche bien au niveau du tri alphabétique et numérique.

Sans vouloir abuser de ton temps, je voudrais te signaler 3 petits problèmes.

Voici donc les messages d'erreur :

1. Lorsque j'actionne les macros "Alphabétique & Numérique, voici le message :

macro mess erreur

Puis ça :

macro mess erreur4

Comme je connais mal le VBA, je préfère ne pas intervenir dans ta macro.

2. Afin d'indiquer le tri num. ou alph., est-il possible d'ajouter ça aux macros? :

Range("B6").Select

Cells(5, 3) = "Liste alphabétique" et

Range("B6").Select

Cells(5, 3) = "Liste numérique"

Et où placer ces lignes dans la macro?

3. En feuille "LISTE A AFFICHER", il faudrait que la ligne de titre (6) apparaisse seulement en page une

Bonjour Bisses,

Relis ma précédente réponse.

Il faut passer de l'exemple à ton projet certains codes.

Du ThisWorkbook et du module nommé tri.

Tiens moi au courant.

ddetp88

Ah! .... ou là, franchement moi et les macro ça fait deux (pour l'instant). En fait, j'adore le principe des macros mais je les fais en passant par "enregistrer une macro puis je jette un œil par curiosité pour voir ce qui s'est créé sans y comprendre grand chose. Donc me voilà largué lorsque tu me parles de ThisWorkbook et de module etc ...

Suis un peu largué dans l'édition des macros, j'ai trouvé ça :

macro mess erreur4

Est-là qu'il faut changer quelque chose?

Merci encore

J'ai répondu à ton dernier message mais impossible de le retrouver dans le sujet. J'ai donc posté ce message depuis le haut de la liste,

Reçois-tu celui-là?

.... Eh bien dès que je l'ai posté, mes derniers messages sont réapparus ... désolé.

Cordialement

Bisses

Est-ce par ici qu'il faut modifier quelques chose?

macro mess erreur6

Bonsoir,

on va essayer de faire simple. Quand on te propose de copier du code vba d'un exemple vers ton projet.

Le plus simple est d'ouvrir les deux fichiers et de déplacer le module de l'exemple vers le projet. Idem pour les userforms.

En revanche pour le thisworkbook, il faut sélectionner le code (dans l'exemple) et le coller dans le thisworkbook du projet.

Ensuite pour faire un peu de ménage, c'est nécessaire de temps en temps tu fais un clic droit sur les modules vides ou inutiles et tu les supprimes sans faire de sauvegarde.

img copie

Les débuts sont quelques fois difficiles mais il ne faut pas se décourager.

Cordialement

Cher ddep88,

UN TOUT GRAND MERCI, la macro tourne super bien et encore mieux que ce que je voulais au départ

Chaleureux messages

Bisses

Rechercher des sujets similaires à "affichage donnees macro"