Impression feuille Excel grace a VB

Aussie -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une grande feuille de donnees sur Excel. Chaque ligne de cette feuille correspond a un produit different. Je souhaiterais pouvoir imprimer un recapitulatif d'un produit (je deciderai donc de la ligne que je veux imprimer) sur une autre feuille Excel, ou des cases se rempliront selon ma feuille de donnees.

Je ne sais pas si je suis tres clair alors on va prendre un exemple:
J'ai sur ma feuille de donnees des infos pour les produits A (ligne 1), B (ligne 2), C (ligne 3), etc. Tous les produits ont les memes categories d'infos. Je souhaite par exemple imprimer un recapitulatif de mon produit A. Pour cela, j'ai cree une autre feuille Excel ou je veux que les infos se mettent automatiquement dans des cases definies. Si je veux imprimer mon produit A, alors ce seront les infos du produit A qui iront dans les cases. Et tout ceci avec un seul clic sur une case "Imprimer" que je mettrai a chaque bout de ligne.

J'espere que c'est assez clair. Je ne sais pas si tout ceci est realisable, j'ai peut-etre vu les choses un peu trop en grand...

En tout cas merci beaucoup a toutes les personnes qui pourront m'aider a realiser ce truc de barbare! ou du moins a debloquer certains points.
A voir également:

4 réponses

BloodyAngel Messages postés 1482 Date d'inscription   Statut Contributeur Dernière intervention   403
 
Hello
si je comprend bien tu ne veux pas vraiment Imprimer sur papier, mais plutôt copier des plages définies d'une feuille à une autre.
C'est tout à fait réalisable et assez simple en plus, si tu connais le VBA.
Si c'est le cas tu n'as qu'à me le dire et je t'enverrai le code.
Sinon ça risque d'être un peu plus compliqué mais y'a toujours moyens.
Dis-moi déjà si tu connais le VBA...
0
Aussie
 
En fait, ce que je veux faire c'est copier des donnees d'une feuille sur une autre. le probleme (si ca est un...) c'est que les cellules ne sont pas du tout placer aux memes endroits. j'ai une feuille de saisie ou les donnees sont rentrees sur une meme ligne (car je fais aussi des recherchesH par rapport a cette feuille) et je veux qu'elles sont recapitulees beaucoup plus proprement et lisiblement sur une autre feuille avant d'imprimer cette feuille. je ne veux pas imprimer tous les produits (et donc toutes les lignes) en meme temps, il faut que je puisse choisir mes lignes.
j'espere que tu me comprends, c'est pas facile a expliquer comme cela.
pour ce qui est de VBA, j'en ai fait un tout petit peu, mais les trucs de base, c'est vraiment la le plus gros chantier que j'ai jamais realise. je pense que si tu m'expliques assez bien comment faire ;) je devrais pouvoir y arriver!
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Tes lignes de produit comporte combien de colonnes ?
Et sont-elles plus large qu'une feuille d'imprimante ?
Ta page imprimé ne comportera qu'une seule ligne ?
Et enfin, pas besoin d'un bouton sur chaque ligne, un seul suffit du moment que l'ont met le curseur sur la ligne à imprimé.
Tu dit... et je verrais pour t'aider.
A+
0
Aussie
 
Mes lignes de produit comportent un petit peu plus de 20 colonnes, et effectivement c'est plus large qu'une feuille A4. ma page a imprimer reprend les donnees de ma feuille de base, mais la presentation n'est pas du tout la meme.
ma feuille de donnees est une feuille de saisie ou toutes les infos sont rentrees simplement et en ligne car je fais aussi une rechercheH sur cette feuille.
ma feuille a imprimer reprend seulement quelques donnees de ma feuille de saisie mais est presentee differement, beaucoup plus proprement et lisiblement.

si je n'ai pas besoin de plusieurs boutons, c'est vraiement top! ca c'est une bonne nouvelle!!
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191 > Aussie
 
Tu a donc des colonne de A à T, dit un peu quel sont les colonnes que tu veux copier, si elle sont disparate mon avis qu'il faudrait employé un Array..
Tu dit.. par exemple A,F,G,H,L,M,O etc..
0
Aussie > lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention  
 
ce que je veux est tres compliquer, j'aurais pas du me lancer la-dedans!

en chaque fois, je considere une seule ligne. sur cette ligne, quelques colonnes m'interessent et effectivement elles ne sont pas placees a la suite les unes des autres.
par exemple, la ligne 3 m'interesse. sur cette ligne 3, je veux que les colonnes 2, 3, 5 et 7 soient reprises dans ma feuille a imprimer mais respectivement aux emplacements D4, G5, G7 et G10.

est-ce que cela est realisable?

tu me parlais de Array, mais n'etant pas un pro de VBA, j'ose te demander : c'est quoi?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Mais oui, c'est pas compliqué...
Tu colle le code ci-dessous dans module1
'prend la ligne où est le curseur de la feuille origine et copie
'sur la 1ère ligne vide de la feuille destination
Sub CopieSurAutreFeuille()
Dim Fl1 As Worksheet, FL2 As Worksheet
Dim Noligne As Long
Dim i As Integer
Dim TBo, TBd
    'Remplacer ces chiffres par le n° de colonne à copier.
    'ex: A=1,C=3 etc..
    TBo = Array(2, 3, 5, 7)
    TBd = Array("D4", "G5", "G7", "G10")
    Set Fl1 = Sheets("FeuilOrigine") 'remplacer par le vrai nom
    Set FL2 = Sheets("FeuilDetination") 'idem
    Noligne = ActiveCell.Row
    For i = 0 To UBound(TBo)
        FL2.Range(TBd(i)) = Fl1.Cells(Noligne, TBo(i))
    Next i

End Sub

Tu colle un bouton sur la feuille, en mode Création tu double clic sur le bouton tu va avoir...
Private Sub CommandButton1_Click()

End Sub

et au milieu tu colle Call CopieSurAutreFeuille, pour avoir
Private Sub CommandButton1_Click()
    Call CopieSurAutreFeuille
End Sub

A+

0
Aussie
 
Salut

J'ai bien suivi tout ce que tu m'as dit mais ça ne fonctionne pas... C'est très certainement car je n'ai pas fait une étape comme il fallait!!

Par exemple, je suis un peu naze, mais comment fais-tu pour créer un bouton et ensuite le placer dans ta feuille Excel?

Aussi, je ne vois pas comment je peux choisir la ligne que je veux imprimer et à quel moment dans le code s'est écrit?

J'espère que tu pourras m'aider car je suis sur la bonne voie, j'ai juste besoin d'un petit coup de main supplémentaire!

Merci!

A+
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191 > Aussie
 
Créer un bouton
Clic droit sur une barre d'outil >> Dans la fenêtre >> Commande >> Macro >> tu prend le bouton jaune et tu le fait glisser dans une barre d'outils,à l'endroit où tu veux le mettre.
Tu ne ferme pas cette fenêtre>> Tu clic droit sur ton nouveau bouton

Tu peu changer l'image
Tu peu changer le nom, c'est le texte que tu verras dans la bulle du bouton.
Tu sélectionne Affecter une macro
dans nouvelle fenêtre sélectionner le nom de la macro.

Pour sélectionner une ligne, simplement mettre le curseur dans une cellule de la ligne que tu veux traiter.
c'est la fonction ActiveCells qui sait où tu a cliqué.
Si pas assez claire repose une question
A+
0
Aussie > lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut lermite222 !

je suis desole mais je n'y arrive pas... je ne comprends pas la demarche et comment je peux imprimer la ligne qui m'interesse avec le code que tu m'as donne et en selectionnant une cellule. d'ailleurs, a quel moment ce ActiveCell apparait-il et comment intervient-il?

je suis surement pas tres doue, mais j'ai comme excuse (si ca n'est une) que je suis en ce moment a l'etranger et que tout le Excel est en anglais!!

a+
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Set Fl1 = Sheets("FeuilOrigine") 'remplacer par le vrai nom
Set FL2 = Sheets("FeuilDetination") 'idem
Noligne = ActiveCell.Row

Pour le bouton, tu l'a fait ?
Si oui, Quand tu clic dessus que se passe-t-il ?


EDIT:
J'ai fait une erreur dans la création de bouton, j'ai expliqué pour une barre d'outil, mais ce serra éventuellement pour plus tard.
Tu sélectionne > Affichage >> Barre d'outils >> boite à outils contrôles.
tu clic sur Mode Création pour que le bouton soit enfoncé...
tu clic sur l'icone >Bouton de commande >> Tu fait un rectangle sur la feuille, tu le dimentionne et le place où tu veux.
Ensuite tu relache le bouton Mode Création
0