Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pas réussi à afficher le MsgBox

  • Initiateur de la discussion Initiateur de la discussion RONIBO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RONIBO

XLDnaute Impliqué
Bonjour,

Comme je pense que j'ai tout dit dans le titre,

Sur ce macro :


J'ai pas réussi à afficher le MsgBox (en rouge) lorsque ma facture dépasse une page.

Vous avez une idée?
 

Pièces jointes

Re : Pas réussi à afficher le MsgBox

Bonjour le forum
Bonjour RONIBO

De souvenir (mais les versions ont bien évoluées donc ...) cela n'est pas faisable. Tu peux par contre passer par un UserForm et un Label.
Bon ouikand à toutes & à tous
 
Re : Pas réussi à afficher le MsgBox

Bonjour,

Code:
            For ligne = 38 To 20 Step -1
                 ....
            Next ligne
            If ligne = 0 Then MsgBox "La facture dépasse 1 page"
comment veux-tu que ligne=0 avec un for qui s'arrête à 20 ?

Il faudrait que tu comptes le nombre de lignes avec Qté>0, et que tu aies une feuille avec plus de 19 lignes d'articles sinon tu restes sur 1 page.
Quelque chose m'échappe dans la logique de ta feuille.

eric
 
Re : Pas réussi à afficher le MsgBox

Re,

Éric juste pour infos :

Lorsque une cellule dépasse les 75 caractères, la ligne s'élargie est passe à 30, ensuite pour ne pas que la facture dépasse la feuille, elle masque la ligne suivante (ou la dernière, je sais pas trop)

C'est un code préparer par un membre du forum, moi je connais la base du vba 🙁
 
Dernière édition:
Re : Pas réussi à afficher le MsgBox

Tel que c'est écrit, ligne ne sera jamais égal à 0.
J'imagine plus qcq chose comme ça :
Code:
    For lig = 20 To 38
        nbLig = nbLig + Rows(r).RowHeight / 15
    Next lig
    If nbLig >= 19 Then MsgBox "La facture dépasse 1 page"
à mettre en fin de proc, après que tu aies réglé toutes les hauteur de ligne.

Mais si ton pb est l'impression, tu peux te servir de la mise en page pour qu'excel répartisse les lignes sur 1 ou 2 pages les numérotant et en répétant ton en-tête :

Regarde l'aperçu sur différents cas pour voir si ça te va.

Tu pourrais te servir aussi de la fonction de Laurent Longres pour avoir le n° de page de ta dernière cellule et forcer le saut de page à la ligne 40 :
Formule numero page : Forum Excel

eric
 
Re : Pas réussi à afficher le MsgBox

Re,

Merci pour ton code Eric 🙂

Parfois ça m'arrive d'avoir des facture très longues (sur 2,3,4 voir 5 pages)

Je savais pas qu'on pouvait répéter les ligne à l'impression, tu m'apprends un truck 😉

Le problème est que je sais pas comment m'y prendre.

Moi je procéder comme ceci,

Je saisie ma facture, puis si je vois qu'elle dépasse la page, je recréer une nouvelle facture vierge et sur la dernière page j'additionne avec ma petite calculette les montant (Total Ht+TVA etc) puis le reporte sur la dernière page de ma facture

Je sais c'est vraiment nul à chier et je perds énormément de temps 🙁

Grâce à la répétition des ligne je pense avoir une bonne idée 🙂

Sinon toi tu aurais procédé comment, qu'est que tu aurais fait à ma place?

a+
 
Dernière édition:
Re : Pas réussi à afficher le MsgBox

Tu pourrais mettre autant de lignes que nécessaire.
Ajouter un filtre automatique sur A19:A155 (par exemple).
Avant d'imprimer tu filtres sur Qté 'supérieur à' 0 pour n'avoir que les lignes intéressantes.
Fait un aperçu avant impression du fichier joint pour voir les pages.

Cette partie pourrait être faite par macro dans Thisworkbook Private Sub Workbook_BeforePrint(Cancel As Boolean).
Y ajouter un calcul de n° de page des cellules A156 et A162, et si elles sont différentes forcer un saut de page en 156 avec :
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=[A156]

Supprimer le filtre Qté>0 pour que toutes les lignes soient utilisables à nouveau.
Désolé mais je n'ai pas trop le temps de le faire, je suis plus dans les valises... ;-)

eric
PS: je viens seulement de voir ton dernier post. C'est très proche, il faut ajouter le n° de page dans une cellule avec la fonction de L Longres, et enlever celui que j'ai mis en bas de page.
 

Pièces jointes

Dernière édition:
Re : Pas réussi à afficher le MsgBox

Il s'agit d'une fonction personnalisée en vba (faire recherche dessus) à mettre dans un module standard.
S'utilise ensuite sur une feuille comme une fonction d'excel (ou bien en vba).
Je suis désolé mais je ne vais pas pouvoir te guider plus pour cause de sable qui m'attend. Il va falloir que qcq'un d'autre prenne le relais si tu n'arrives pas à t'en sortir.

eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
711
Réponses
9
Affichages
405
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
581
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…