J’ai un fichier excel dans lequel je numérote le document. J’aimerais que la numérotation se fasse automatiquement à chaque impression pour être sur de n’avoir jamais 2 numéros identiques.
Si quelqu’un a une solution pour moi je suis preneur d’autant plus que je ne suis pas expert dans l’utilisation d’excel…
Il y a un évènement dans excel qui se déclenche avant chaque impression.
On peut le gérer en VBA :
Sélectionner this Workbook puis dans la fenêtre de droite Workbook dans la premiere liste déroulante, et BeforePrint dans la seconde.
Puis associer le code
ex : Range("CompteurPage") = range("CompteurPage") +1
si la cellule compteur a été nommée CompteurPage
Si le classeur est composé de plusieurs pages susceptibles d’êre imprimées, il faudra en plus rajouter un test pour la feuille active
Attention également aux “fausses manoeuvres” : avec cette méthode, le compteur progresse également sur l’aperçu avant impression, et sur l’annulation d’impresion.
[merci pour cette info ça fonctionne à merveille… le Hic c’est qu’il faut lancer impression par impression, si je lui demande d’imprimer 10 pages il me les imprime avec le même numéro!!!
Il s’agit en réalité d’un imprimé type, pour lancer l’impression je fais “Ctrl+P imprimer Nbre de copie=10” et la ça m’imprime 10 fois la même (normal)
Et quand je clique sur l’onglet imprimer là çà incrémente…
Rien de bien génant donc mais quand je les imprime en générale c’est par 50.
Pas de solution “en l’état”, mais si tu acceptes de modifier un petit peu ton comportement utilisateur, à savoir cliquer sur un bouton spécifique qui figurera dans le coin de la page, on peut associer une macro qui lancera non pas une impression de 10 exemplaires, mais 10 impressions de 1 exemplaire.
Tu dois pouvoir faire de la manière suivante :
Dans ta feuille, à l’aide de la barre d’outils Boite à Outils Contrôle, tu crées un bouton.
Sur le bouton, clic droit > propriétés
Tu changes son texte (Caption)
Tu mets PrintObject à False pour ne pas qu’il apparaisse à l’mpression
Tu fermes la fenêtre propriétés
Double clic sur le bouton : la fenêtre de code s’ouvre
tu complètes la fonction de la manière suivante :
Private Sub CommandButton1_Click()
nb = InputBox("Nombre de copies à effectuer : ", "Impression de la feuille", 1)
If IsNumeric(nbS) Then
For i = 1 To Val(nb)
Me.PrintOut
Next
End If
End Sub
Ca devrait donner ce que tu attends
Edit : pour tester, il faut penser à désactiver le mode création (1e icone de Boite à Outils Contrôle)
Merci beaucoup, ça fonctionne à merveille!!!
j’ai un autre défi pour toi si ça t’interesse compte tenu que tu as l’air de toucher ta bille dans excel…
Je complète tous les jours mon stock et j’édite des fiches par produit. aujourdh’ui je fais la saisie manuelle des champs à remplir. je souhaiterais faire ça en automatique.
Si tu as une solution pour ça je suis preneur!!!!
Il faudrait donner un peu plus de précisions
Ca te permettra de récupérer plusieurs propositions de solutions et de choisir ensuite celle qui te convient le mieux
J’ai deux fichiers: “l’encours” et “les fiches suiveuses”.
Les fiches suiveuse sont des imprimés type par produit et l’encours est l’image de mon stock.
Chaque fois que je reçoit de la marchandise je saisie une ligne de l’encours par ligne de commande donc par produit.
A chaque ligne d’encours correspond 1 produit et donc une fiche suiveuse. L’mprimé de la fiche suiveuse est toujours le même et les champs à remplir toujours au même endroit…
Grace à un CONCATENER et une recherche verticale, j’affiche en bout de ligne un lien hypertexte qui me permet d’ouvrir la fiche suiveuse par produit.
Je fais ensuite un copier coller des information de ma ligne d’encours dans la fiche suiveuse et ce ligne par ligne.
ça représente une trentaine de ligne par jour ce qui n’est pas énorme mais la multiplication du risque d’erreur m’ennui et puis si je peux gagner du temps…
Si il te faut des précision ou que ce n’est pas bien clair, je suis là!!
j’ai executer la manip, le souci est pour le changement de ligne: pas de saut de ligne et je pense qu’il me faut une condition de fin pour executer la macro parce que si je met un système qui permet d’incrementer les lignes, il faudra une condition de fin…
Je pensais que tu voulais un truc pour travailler ligne par ligne
C’est possible de l’étendre à toute une sélection, mais pas en automatique
Je n’ai aucune idée du nombre de lignes que génère la macro en automatique.
Si ca ne fait pas trop, tu la mets en ligne, on te dira comment la modifier.
Si trop volumineux, je peux te donner mon adresse mail par MP
Bonjour, j’ai retranscris la même formule mais chaque fois que je fais un aperçu avant impression cela m’avance le compteur.
Comment rectifier le tir?
Cordialement,
Normal : l’aperçu est une impression, donc l’évènement est déclenché.
Et à ma connaissance, il n’y a pas moyen de savoir quel type d’impression est demandé (aperçu ou printer).
Fais une recherche sur Google : je crois me rappeler qu’il y a un article qui parle plus ou moins d’un cas comme celui-là
La seule solution consiste à surcharger la commande aperçu avant impression, de lui faire positionner une variable globale, puis de tenir compte de cette variable dans le Before_print pour annuler ou non l’évènement.