begin process at 2012 05 28 13:13:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > CREER UN CALENDRIER DE POCHE

CREER UN CALENDRIER DE POCHE


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Source .NET ( DotNet ) Classé sous :Word, PictureBox, Calendrier, Print, Image Niveau :Débutant Date de création :06/12/2011 Date de mise à jour :12/12/2011 17:19:40 Vu / téléchargé :2 384 / 241

Auteur : Le Pivert

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Création d'un calendrier pliable pour la nouvelle année. Le code est en VB2008 et utilise Word pour l'impression du calendrier recto-verso. Vous ouvrez 2 images pour le recto et ensuite tout est automatique. Le verso est chargé d'un calendrier annuel 2012. Vous pouvez à tout moment cesser l'impression. Dans les documents Word, la mise en page est réglée sur: Papier 10x15 sans bordure(avec languette), vous pouvez la regler différemment. Vous pouvez créer un calendrier sans Word. On utilise un bitmap pour mettre 2 images dans une PictureBox et l'on redimensionne les images pour imprimer en 10x15.Réglage de l'imprimante par code.
Bonne programmation.


 Conclusion

Pour les débutants utiliser Word à partir de VB2008.
Mettre 2 images dans une PictureBox à l'aide d'un bitmap.
Redimensionnement des images pour l'impression
Régler l'imprimante par code
Merci à ADN56 pour l'optimisation du code.
Merci également pour les réponses sur le Forum à Jack et marcPL

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 décembre 2011 11:00:29 :
Suite au commentaire de ADN56, correction de la source avec des fonctions pour éviter les redondances.
10 décembre 2011 17:33:30 :
Optimisation du code par ADN56
12 décembre 2011 17:19:42 :
Créer un calendrier sans Word Mettre 2 images dans une PictureBox à l'aide d'un bitmap. Redimensionnement des images pour l'impression Régler l'imprimante par code

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) TRIEUR DE PHOTOS
Source avec Zip Source avec une capture Source .NET (Dotnet) EXTRAIRE LES FRAMES D'UN GIF ANIMÉ
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ
Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL
Source avec Zip Source avec une capture COLLECTION ID

 Sources de la même categorie

Source avec Zip Source avec une capture OPTIONS PENDANT LE DÉBOGAGE par avictatum
Source avec Zip Source avec une capture Source .NET (Dotnet) TROUVER UN CONTROLE "ACTIF" DANS UN FORM par didierdeco91
Source avec Zip Source avec une capture RESISTANCES ÉQUIVALENTES par besqueut
Source avec Zip Source avec une capture Source .NET (Dotnet) JACALENDAR par raffika
Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) TRIEUR DE PHOTOS par Le Pivert
Source avec Zip Source avec une capture LIST DES IMAGES AVEC BASE DE DONNÉES ET REPERTOIR D'IMAGE par yannickcephas
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip IMAGELOARDER par vkitumaini

Commentaires et avis

Commentaire de Adn56 le 09/12/2011 08:21:22 6/10

Salut le pivert, idée sympa et code propre. Un détail cependant, j'aurais pas du tout codé comme ça. Je serais plutôt parti sur des sub/fonction pour ouvrir une image et les enregistrer. Je trouve par exemple que save1 et save2, open1 et open2 sont bien trop redondant.
En gros dans la sub cmb principal j'aurais eu un truc de ce style
dim image1 as bitmap = open()
dim image2 as bitmap = open()
if not image1 is nothing then save(image1)
if not image2 is nothing then save(image2)
print_form, etc.... tu vois l'idée ?
PS : j'ai pas vu si tu détruisais bien le processus de word ?

Trés bonne continuation et bonne prog à toi Sieur (:

Commentaire de Le Pivert le 09/12/2011 11:06:27

Merci ADN56, tu es toujours de bon conseil. J'ai donc corrigé ma source. Je ne suis pas très doué pour les fonctions, mais cela fonctionne. Pour ce qui est de quitter Word, je l'ai fait sciemment. Car il faut attendre la fin de l'impression pour quitter le document. J'ai essayé avec PrintEnd, mais cela ne fonctionnait pas. J'ai donc ajouté un message à la fermeture. Je vais chercher un peu plus.
Au plaisir de te relire
@+ Le Pivert
PS il y a des problèmes de mise à jour sur le site les commentaires ne s'affichent pas toujours

Commentaire de Adn56 le 09/12/2011 18:01:38

Oui pour les commentaires invisibles j'ai eu le cas aussi (firefox8 et IE) à surveiller donc.
Pour ton code l'idéale serait carrément de dessiner directement le calendrier par dessus de l'image dans le picturebox et de l'imprimer via VB.NET (plus besoin du lourd pack office donc ^^)
Sinon je look tes fonctions et j'avoue que je n'aurais pas passé en paramètre picturebox (qui est un control au fait, c'est mieux qu'un objet ;) ). je vois aussi que tu l'utilises ainsi dans un autre sub, ByVal PictureBox As Bitmap, c'est pas trés cohérent non ? à voir ;)
Pour finir ton test :
If PictureBox1.Image Is Nothing Then
MessageBox.Show("Il n'y a pas d'image!", "Ouverture image 1", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
Il serait bien mieux dans la fonction open(), encore un peu d'optimisation pour un plaisir de lecture (:
bon travail, cela fait plaisir d'aider et de partager nos connaissances avec des gens comme toi. Je me penche de suite sur tes fonctions pour voir en détails, @ trés vite M. Le Pivert

Commentaire de Adn56 le 09/12/2011 18:57:37

Alors mes premières constations :
Option Strict On !
tu verra qu'une fonction DOIT retourner un truc, sinon c'est d'une SUB, donc open et save à revoir ^^
je bosse dessus et te post ma version, a toute de suite ^^

Commentaire de Adn56 le 09/12/2011 19:31:28

Voila à quoi je pensais plutot ;) bon décodage poto . @+++

Option Explicit On
Option Strict On
Imports System.IO
'Imports System.Drawing.Imaging
Public Class Form1
#Region "Déclarations"
    Dim hauteur As Integer
    Dim largeur As Integer
    Dim monChemin1 As String = Application.StartupPath & "\Configuration\image_1.jpg"
    Dim monChemin2 As String = Application.StartupPath & "\Configuration\image_2.jpg"
#End Region
#Region "Ouverture et fermeture"
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'dans le form load :
        PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
        PictureBox2.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
    Private Sub cmdopen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdopen.Click
        ' revenons à nos fonctions ^^
        PictureBox1.Image = open() 'ouvrir 1ère image
        PictureBox2.Image = open() 'ouvrir seconde image
        save(PictureBox1.Image, monChemin1) 'enregistrer 1ère image
        save(PictureBox2.Image, monChemin2)  'enregistrer seconde image
    End Sub
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        'supprime les fichier images à la fermeture
        File.Delete(monChemin1)
        File.Delete(monChemin2)
        MessageBox.Show("N'oubliez pas de fermer les documents Word: Recto et Verso.", "Creer calendrier", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub
    Private Function open() As Image
        'Mise en place d'un objet OpenFileDialog pour ouvrir un fichier image
        Dim monImage As Image
        Dim openFD As New OpenFileDialog
        With openFD
            .Filter = "JPeg Files (*.jpg,*.jpeg)|*.jpg;*.jpeg|Bitmap Files (*.bmp)|*.bmp|Gif Files (*.gif)|*.gif|Icon Files (*.ico)|*.ico|Png Files (*.png)|*.png"
            .FilterIndex = 1
            .Title = "Sélectionnez le fichier image que vous souhaitez ouvrir."

            'Affiche et attend la fermeture de la boite de dialogue
            If .ShowDialog() = DialogResult.OK And _
                Not (.FileName Is Nothing) Then 'si clic sur OK et nom de fichier <> nothing attribu l'image
                monImage = Image.FromFile(openFD.FileName)
                ' test largeur/hauteur
                If monImage.Width > monImage.Height Then
                    monImage.RotateFlip(RotateFlipType.Rotate90FlipX)
                End If
            Else
                'MessageBox.Show("ouverture impossible", "Echec", MessageBoxButtons.OK, MessageBoxIcon.Information)
                'Return Nothing
                Exit Function
            End If
        End With
        openFD.Dispose()
        Return monImage
    End Function
#End Region
#Region "Enregistrements des images dans la bonne position"
    Private Sub save(ByVal cetteImage As Image, ByVal chemin As String)
        ' Recevez un Bitmap.
        Dim bm As Image = cetteImage
        ' Sauvez l'image comme un  JPEG
        bm.Save(chemin, System.Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
#End Region
#Region "Inserer images dans documents Word"
    'impression des images
    'impression du calendrier
#End Region


End Class

Commentaire de Le Pivert le 10/12/2011 07:57:06

Bravo ADN56, c'est parfait. J'ai fait juste une petite correction. Tu avais mis la rotation de l'image dans la fonction.Mais les images tournent à l'inverse l'une de l'autre.
Voici le code:
#Region "Déclarations"
    Dim hauteur As Integer
    Dim largeur As Integer
    Dim monChemin1 As String = Application.StartupPath & "\Configuration\image_1.jpg"
    Dim monChemin2 As String = Application.StartupPath & "\Configuration\image_2.jpg"
    Dim shape As Integer
    Dim oWord As Object
#End Region
#Region "Ouverture et fermeture"
    Private Sub cmdopen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdopen.Click
        ' revenons à nos fonctions ^^
        PictureBox1.Image = open() 'ouvrir 1ère image
        If hauteur < largeur Then
            PictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipXY) 'position de l'image dans la PictureBox
        End If
        PictureBox2.Image = open() 'ouvrir seconde image
        If hauteur < largeur Then
            PictureBox2.Image.RotateFlip(RotateFlipType.Rotate90FlipXY) 'position de l'image dans la PictureBox
        End If
        save(PictureBox1.Image, monChemin1) 'enregistrer 1ère image
        save(PictureBox2.Image, monChemin2)  'enregistrer seconde image
        print_image()
    End Sub
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        'supprime les fichier images à la fermeture
        File.Delete(monChemin1)
        File.Delete(monChemin2)
        MessageBox.Show("N'oubliez pas de fermer les documents Word: Recto et Verso.", "Creer calendrier", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub
    Private Function open() As Image
        'Mise en place d'un objet OpenFileDialog pour ouvrir un fichier image
        Dim monImage As Image
        Dim openFD As New OpenFileDialog
        With openFD
            .Filter = "JPeg Files (*.jpg,*.jpeg)|*.jpg;*.jpeg|Bitmap Files (*.bmp)|*.bmp|Gif Files (*.gif)|*.gif|Icon Files (*.ico)|*.ico|Png Files (*.png)|*.png"
            .FilterIndex = 1
            .Title = "Sélectionnez le fichier image que vous souhaitez ouvrir."

            'Affiche et attend la fermeture de la boite de dialogue
            If .ShowDialog() = DialogResult.OK And _
                Not (.FileName Is Nothing) Then 'si clic sur OK et nom de fichier <> nothing attribu l'image
                monImage = Image.FromFile(openFD.FileName)
                ' test largeur/hauteur
                largeur = monImage.Width
                hauteur = monImage.Height
            Else
            MessageBox.Show("ouverture impossible", "Echec", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return Nothing
            Exit Function
            End If
        End With
        openFD.Dispose()
        Return monImage
    End Function
#End Region
#Region "Enregistrements des images dans la bonne position"
    Private Sub save(ByVal cetteImage As Image, ByVal chemin As String)
        ' Recevez un Bitmap.
        Dim bm As Image = cetteImage
        ' Sauvez l'image comme un  JPEG
        bm.Save(chemin, System.Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
#End Region
Je ne poste pas encore la maj, je voudrais régler le problème de la fermeture du doc Word à la fin de l'impression. Je vais faire appel au Forum, car je n'ai rien trouvé à part PrintDocument, mais je ne l'utilise pas.
Je te tiens au courant et encore merci pour l'optmisation du code
Bon WE @+ Le Pivert

Commentaire de Adn56 le 10/12/2011 09:48:24

re, en effet j'avais pas vu que les images tournent chacune dans un sens, mais encore une fois cette fonction est mieux dans la function OPEN, il te suffit de passer un paramétre à cette function pour pivoter l'image dans le bon sens :
function open (byval seconde_image as boolean) as image
[...]
'Affiche et attend la fermeture de la boite de dialogue
            If .ShowDialog() = DialogResult.OK And _
                Not (.FileName Is Nothing) Then 'si clic sur OK et nom de fichier <> nothing attribu l'image
                monImage = Image.FromFile(openFD.FileName)
if not second_image then                
If monImage.Width > monImage.Height Then                   monImage.RotateFlip(RotateFlipType.Rotate90FlipX)
else
If monImage.Width > monImage.Height Then                   monImage.RotateFlip(RotateFlipType.Rotate270FlipX)
end if

fin de la function....
puis enfin comme tu l'imagine déja dans l'appel de la function :
Private Sub cmdopen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdopen.Click
        ' revenons à nos fonctions ^^
        PictureBox1.Image = open(false) 'ouvrir 1ère image
PictureBox2.Image = open(true) 'ouvrir seconde image
et voila le tour est joué ;)
kenavo et @++

Commentaire de Le Pivert le 10/12/2011 17:30:01

Merci ADN56 cela fonctione à merveille. Je vais poster la maj, car j'ai une réponse de Jack qui m'a dit que l'on pouvez fermer le document cela n'empêchait pes l'impression. C'est exact.
Bonne fin d'année
@+ Le Pivert

Commentaire de Adn56 le 10/12/2011 19:15:43

bien les commentaires ne s'affichent plus, mais j'ai vu que tu avais modifié ta source. C'est presque nickel ^^ et oui regarde ça :
If PictureBox1.Image Is Nothing Then Exit Sub puis
If PictureBox2.Image Is Nothing Then Exit Sub !
namého un petit OR quoi ! lol

If PictureBox1.Image Is Nothing _
Or PictureBox2.Image Is Nothing _
Then Exit Sub

;) bon boulot pivert, il te reste plus qu'a charger ton calendrier sur une 3iéme image et de tout imprimer via ton soft ;) bon courage et au plaisir de te relire (si les comms s'affichent bien sur ^^)

kenavo

Commentaire de Le Pivert le 12/12/2011 17:25:09

ADN56, j'ai suivi ta suggestion. Faire cela sans Word.Cela n'a pas été facile, il fallait redimensionner les images. Ce que faisait Word. ensuite créer un bitmap pour insérer 2 images dans la PictureBox. Un petit hic que je n'ai pas résolu. Avec cette méthode on ne peut pas supprimer les images à la fermeture. Je l'ai fait à l'ouverture. Avec Word cela ne posait pas de problème.J'ai tout essayé Picture Nothing, mettre une autre image, rien n'y fait cela bug!
@+ en attendant de te relire
Le Pivert

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Charger une image sous Word avec VB [ par VinyDev ] URGENT !J'ai vraiment un soucis !!J'ai créer un template sous word, dans lequel j'ai placé une picturebox.JE ne parviens pas à trouver la commande me Webcam dans une picturebox [ par gribouillex ] Bonjour,J'ai une application qui fait, entre autres, des Print de texte dans une PictureBox, le tout inséré dans un timer.J'ai placé une image de fond Importer une image du web dans une picturebox [ par linkpavel ] Bonjour,Je voudrais prendre une image du web et la mettre dans une picturebox, autrement dit que l'image reste sur le net, que le logiciel la téléchar Modifier une image dans des doc Word 97 en raffale... [ par Razmote ] Bonjour a tous,Je cherche comment modifier un logo inseré dans des documents word 97 en raffale...J ai plus de 5000 documents concernés, nous venons d changement d'image PictureBox [ par Diesel80 ] Bonjour, J'aimerais créer un jeu de carte en VB. J'ai déjà créé l'algorithme sur papier. Maintenant mon souci et de pouvoir changer l'image (donc la Image d'un DataGridView vers un PictureBox , possible ? vb2005 [ par vercomax ] Bonjour,comment faire pour transférer l'image d'un DataGridViewImageColumn vers un PictureBox?il s'agit d'images bmp(je sais le faire dans l'autre sen image d'un datagridview -> picturebox vb2005 [ par vercomax ] Bonjour,comment faire pour transférer l'image d'un DataGridViewImageColumn vers un PictureBox ?et aussi dans l'autre sens.dans tous les cas ils s'agir Exporter un Dessin WORD vers une Image [ par rambc ] Bonjour,je voulais savoir s'il était possible à l'aide d'une macro VBA d'exporter un dessin fait sous Word (à partir de segments, cercles... de la bar Problème de Picturebox [ par cire2003 ] Lorsque je mets un picturebox dans ma fenêtre, je me retrouve avec un arrière plan gris (celui par default). En ce qui me concerne, je mets une image Chargement d'une image dans un PictureBox VB2005 [ par Phil2Lil ] Bonjour à tous (ou bonne nuit !)Je dois charger une image dans un Picturebox sur un formulaire affichant des données en mode détail.Mon probléme n'est


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales