Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
macro pour imprimer une partie d'une feuille sur une autre
Bonjour à tous
Je souhaite disposer d'un bouton sur la feuille de saisie pour imprimer une partie de feuille:
L'utilisateur saisit au fur et à mesure du mois la consommation de 4 elemnts (R, V, V+, X) apres avoir recupéré dans une base située sur la premiere feuille le nom de la personne
Je souhaite recuperer sur une troisieme feuille par macro juste la colonne nom et les totaux des 4 elements
Mon tableau reel fait 300 lignes, je ne voudrais avoir que les lignes remplies
Je joins le fichier test
Merci d'avance
Re : macro pour imprimer une partie d'une feuille sur une autre
boudu à dit:
Bonjour à tous
Je souhaite disposer d'un bouton sur la feuille de saisie pour imprimer une partie de feuille:
L'utilisateur saisit au fur et à mesure du mois la consommation de 4 elemnts (R, V, V+, X) apres avoir recupéré dans une base située sur la premiere feuille le nom de la personne
Je souhaite recuperer sur une troisieme feuille par macro juste la colonne nom et les totaux des 4 elements
Mon tableau reel fait 300 lignes, je ne voudrais avoir que les lignes remplies
Je joins le fichier test
Merci d'avance
Re : macro pour imprimer une partie d'une feuille sur une autre
Salut Gorfael, le forum
C'est absolument impeccable, juste un petit truc mais je vais essayer de trouver une solution: j'ai mis le bouton pour lancer la macro en haut à gauche mais ça apparait sur la feuille impression (ce serait mieux sans!
Quelqu'un saurait-il comment faire pour que le bouton suive quand on est plus bas dans la feuille car j'ai pas mal de noms et à la fin du mois quand je veux lancer la fameuse impression j'aimerais mieux que le bouton ait suivi (le luxe quoi!
Bonne journée à tous
Re : macro pour imprimer une partie d'une feuille sur une autre
Bonjour
Une solution : placer le ou les boutons sur la ligne 1, figer les volets pour garder l'affichage de la ligne 1.
Définir la zone d'impression hors ligne 1.
On peut aussi faire un clic droit sur le bouton et, dans propriétés de l'objet, décocher Imprimer.
Re.... le fil
Salut Alyrio : yerk, yerk, yerk, j'ai répondu avant na, na, na
Juste une critique violente de ton code : tu sous-estimes un petit peu le VBA d'Excel
Code:
Range("CT" & CStr(LigneEncours)).Value
tu te compliques la vie : ton instruction peut se simplifier en :
Code:
Range("CT" & LigneEncours)
C'est plus simple, ta ligne complète reste lisible à l'écran sans le recours au changement de ligne
Code:
LigneEncours = LigneEncours + 1 ' On passe a la ligne suivante pour de nouvelles données dans la feuille "consommation"
LigneSuivante = LigneSuivante + 1 ' Nouvelle ligne vierge dans la feuille "impression"
Else
LigneEncours = LigneEncours + 1 ' On passe a la ligne suivante pour de nouvelles données dans la feuille "consommation"
End If
que le test soit vrai ou faux, il faut que tu passes à LigneEncours = LigneEncours + 1
Code:
LigneSuivante = LigneSuivante + 1 ' Nouvelle ligne vierge dans la feuille "impression"
End If
LigneEncours = LigneEncours + 1 ' On passe a la ligne suivante pour de nouvelles données dans la feuille "consommation"
c'est pas "important", sauf que si tu as beaucoup de code, et que ça marche pas, tu finis toujours par en oublier un quand tu fais des modifs à répétition pour adapter la macro au résultat voulu
Application.DisplayAlerts
Application.EnableEvents
Application.ScreenUpDating...
Quand j'utilise une fonction qui modifie le fonctionnement d'Excel, je passe toujours en gestion d'erreur (on error goto Err_...)
Ta macro : elle détecte une erreur dans la ligne de test
if (R)+(V+)+(V)+(X) then
Excel détecte une erreur => message d'avertissement => End Sub
"verrais plus tard, j'ai un autre fichier à traiter, je ferme celui-ci et j'aouvre l'autre" et.... #CENSURÉ# DE #CENSURÉ# Pourquoi ça marche pas ~?!?!?!
(et ça, c'est du vécu ,et avec EnableEvents qui m'a permis de m'en rendre compte)
Donc, pour éviter une calvitie précoce, chaque fois que tu exécute une instruction qui dépasses le cadre du fichier, occupe-toi de la gestion d'erreur.
Pour ta macro, tu utilises
Code:
While Sheets("consommation").Range("A" & CStr(LigneEncours)) <> ""
comme il détecte les doublons, je suppose que périodiquement, il regroupe les données en supprimant ceux-ci.
Pour un cas de ce genre, moi, je traite en m'occupant de la ligne en doublon, en reportant les données dans le premier enregistrement du nom, et en les éffaçant, une à une, puis quant toutes les données ont bien été traitées, j'efface le nom, puis je passe au doublon suivant. si je suis interrompu, je recommence mon traitement après le dernier nom vide
avec ton code, s'il y avait doublon en ligne 30 par exemple, que je veuille imprimer, je me retrouve avec 30 lignes de traitées. Et comme je fais confiance à la macro, et que c'est le début du mois, 5 ou 10 enregistrements, c'est possible, donc, je peux transmettre à ma hiérarchie glups !
Mais c'est ma vision des choses, et elle est peut-être fausse
J'aime bien critiquer, yerk, yerk, yerk
A+
PS : Si tu trouves des erreurs dans mon code, n'hésite pas à me le dire, ça fera dégonfler ma grosse tête ( )
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.