Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1635 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA excel] incrémentation et impréssion automatique

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA excel] incrémentation et impréssion automatique

n°2100460
mc3donald
www.warrock-team.clanfree.net
Posté le 08-09-2011 à 21:04:49  profilanswer
 

Bonjour,
 
Voila je vous expose ma problématique :
 
Je travaille actuellement dans une boite de transport une partie de mon travaille quotidien est d'imprimer des "fiches palettes", le nombre d'impressions peuvent varier entre 50 et 200 par jours (1 fiche par clients).
 
Une fiche comporte 6 données différentes présentent dans un tableau excel qui mes transmis touts les jours la structure du tableau ne change jamais.
 
Ces données incrémentées automatiquement dans la "fiches palettes" grâce a des Recherchev, en remplissant une seule donnée.
 
Ma problématique a l'heure actuelle est que je voudrais que l'incrémentation et l'impression des fiches soit automatique grâce a des macros.
 
BDD :
http://imageshack.us/photo/my-images/687/bdde.png/
 
Fichier a incrémenter et imprimer en x exemplaire :
http://imageshack.us/photo/my-images/856/fichierpalette.png/
Cdlt.
 
Mc3donald.

mood
Publicité
Posté le 08-09-2011 à 21:04:49  profilanswer
 

n°2100728
otobox
Maison fondée en 2005
Posté le 10-09-2011 à 12:39:38  profilanswer
 

mc3donald a écrit :

Bonjour,
 
Voila je vous expose ma problématique :
 
Je travaille actuellement dans une boite de transport une partie de mon travaille quotidien est d'imprimer des "fiches palettes", le nombre d'impressions peuvent varier entre 50 et 200 par jours (1 fiche par clients).
 
Une fiche comporte 6 données différentes présentent dans un tableau excel qui mes transmis touts les jours la structure du tableau ne change jamais.
 
Ces données incrémentées automatiquement dans la "fiches palettes" grâce a des Recherchev, en remplissant une seule donnée.
 
Ma problématique a l'heure actuelle est que je voudrais que l'incrémentation et l'impression des fiches soit automatique grâce a des macros.
 
BDD :
http://imageshack.us/photo/my-images/687/bdde.png/
 
Fichier a incrémenter et imprimer en x exemplaire :
http://imageshack.us/photo/my-images/856/fichierpalette.png/
Cdlt.
 
Mc3donald.


Ça ne me semble pas trop difficile à faire, mais j'ai un peu du mal à comprendre le problème  

Citation :

Ces données incrémentées automatiquement dans la "fiches palettes" grâce a des Recherchev, en remplissant une seule donnée.


 [:mcwimpy_ban4]  
 
S'il s'agit de parcourir la liste BDD (je remet l'image en clair, tes liens sont pourris !)
http://img687.imageshack.us/img687/9125/bdde.png
et la mettre en forme chaque ligne pour l'imprimer tel que ceci :
http://img856.imageshack.us/img856/6189/fichierpalette.png
ça ne devrait pas poser de problème.
 
Tel que j'imagine ton problème, il faut avoir un fichier Excel, par exemple "Impression étiquette" où est déjà faite la mise en forme l'étiquette et qui contient la macro vba. Grâce à un bouton dans ce fichier, on sélectionne le fichier BDD à traiter et ensuite, ligne par ligne, la macro importe les données au bon endroit de l'étiquette et lance l'impression.
 
Est-ce cela que tu veux faire ?


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°2100751
otobox
Maison fondée en 2005
Posté le 10-09-2011 à 15:29:29  profilanswer
 

Voilà un exemple qui correspond à ce que je décris dans mon message ci-dessus :
http://jiem51.perso.neuf.fr/prive/ [...] alette.zip  
Fichier zip de 238 Ko (244 042 octets) contenant :

  • BDD.xls -> La liste des données
  • Fiche palette.xls -> Le fichier excel contenant la macro et le template de l'étiquette.
  • incrémentation et impréssion automatique [VBA excel] - VB_VBA_VBS - Programmation - FORUM HardWare.fr.pdf -> Ce fil de message


Le code des macros du fichier Fiche palette.xls :

Code :
  1. Option Explicit
  2. '************************************************************************
  3. '** Ces macros permettent  d'imprimer  automatiquement des  étiquettes **
  4. '** renseignées à partir d'une données contenues dans un fichier Excel **
  5. '** extérieur.                                                         **
  6. '** Elle ne permet pas le choix de l'imprimante (qui est celle choisie **
  7. '** dans le gestionnaire d'imprimante).                                **
  8. '**                                                                    **
  9. '** Ecrites & testées sous Excel 2003, Win XP, 32bits.                 **
  10. '**                                                                    **
  11. '** Modifications, améliorations, redistribution fortement encouragées **
  12. '**                                                                    **
  13. '**                                                                    **
  14. '**                                               OtObOx - 10/09/2011  **
  15. '************************************************************************
  16. 'Ouvre un explorateur pour sélectionner un fichier Excel
  17. 'et lance l'impression
  18. Sub ChoixFichier()
  19. Dim strReponse
  20.     strReponse = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls", , "Sélectionner le fichier à imprimer" )
  21.     If strReponse = False Then
  22.         Cells(1, 1) = ""
  23.     Else
  24.         Cells(1, 1) = strReponse
  25.         ImprimerFichesPalette
  26.     End If
  27. End Sub
  28. 'Lance l'impression sans choisir le fichier à traiter
  29. Sub LancerImpression()
  30.     ImprimerFichesPalette
  31. End Sub
  32. 'Imprime les fiches palettes en fonction des données inscrites dans le
  33. 'classeur excel sélectionné dans la cellule A1
  34. Private Sub ImprimerFichesPalette()
  35. Dim xlDoc As Excel.Workbook
  36. Dim xlDon As Excel.Worksheet
  37. Dim xlEti As Excel.Worksheet
  38. Dim Ligne As Integer
  39. On Error GoTo ImprimerFichesPalette_Error
  40.     'Test pour vérifier si une adresse de fichier est sélectionnée et qu'elle est valide
  41.     Do
  42.         If Not IsEmpty(Cells(1, 1)) Then
  43.             If Dir(Cells(1, 1)) <> "" Then
  44.                 Exit Do
  45.             End If
  46.         Else
  47.             If MsgBox("Le fichier de données n'est pas valide !" & vbCr & "Voulez-vous en sélectionner un maintenant ?", vbYesNo, "Erreur fichier" ) = vbYes Then
  48.                 ChoixFichier
  49.             Else
  50.                 Exit Sub
  51.             End If
  52.         End If
  53.     Loop
  54.    
  55.     'Met en mémoire l'onglet contenant l'étiquette
  56.     Set xlEti = ThisWorkbook.Worksheets("Etiquette" )
  57.     'Définition de la zone d'impression
  58.     xlEti.PageSetup.PrintArea = "$A$4:$C$11"
  59.    
  60.     'Ouvre le fichier sélectionné
  61.     Set xlDoc = Workbooks.Open(Cells(1, 1))
  62.     'Met en mémoire l'onglet contenant les données (ici le 1er onglet)
  63.     Set xlDon = xlDoc.Worksheets(1) '(1) pour 1er onglet
  64.    
  65.     'Initialisation du n° de ligne contenant la 1ere donnée
  66.     Ligne = 2
  67.     'Parcourt la liste du 1er onglet tant que la cellule de la 1ere colone soit vide
  68.     Do While Not IsEmpty(xlDon.Cells(Ligne, 1))
  69.         With xlEti
  70.             'Recopie des données vers l'étiquette
  71.             .Cells(5, 1) = xlDon.Cells(Ligne, 1) 'N° tournée
  72.             .Cells(5, 2) = xlDon.Cells(Ligne, 4) 'Récépissé
  73.             .Cells(7, 1) = UCase(xlDon.Cells(Ligne, 2)) 'Destination en MAJUSCULE
  74.             '.Cells(7, 1) = xlDon.Cells(Ligne, 2) 'Destination tel qu'écrit dans la base de donnée
  75.             .Cells(9, 1) = UCase(xlDon.Cells(Ligne, 3)) 'Client en MAJUSCULE
  76.             '.Cells(9, 1) = xlDon.Cells(Ligne, 3) 'Client tel qu'écrit dans la base de donnée
  77.             .Cells(11, 1) = xlDon.Cells(Ligne, 5) 'Palette
  78.             .Cells(11, 3) = xlDon.Cells(Ligne, 6) 'Nb colis
  79.        
  80.             'Impression de l'étiquette
  81.             .PrintOut Copies:=1, Collate:=True
  82.            
  83.             'Ligne suivante
  84.             Ligne = Ligne + 1
  85.         End With
  86.     Loop
  87.     'Ferme le fichier de données
  88.     xlDoc.Close
  89.     'Libère les objets créés dans la mémoire
  90.     Set xlDon = Nothing
  91.     Set xlEti = Nothing
  92.     Set xlDoc = Nothing
  93.     'Annule la zone d'impression
  94.     ActiveSheet.PageSetup.PrintArea = ""
  95. On Error GoTo 0
  96. Exit Sub
  97. ImprimerFichesPalette_Error:
  98.     MsgBox "Erreur " & Err.Number & " (" & Err.Description & " )", vbCritical
  99. End Sub


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA excel] incrémentation et impréssion automatique

 

Sujets relatifs
[ACCESS/VBA] Remplir une table reliée à une autre automatiquement[demande] envoi automatique de produit numerique
mise a jour automatique JTablepRESENTATION DES DONNEES DANS UN FORMULAIRE POUR IMPRESSION
Création page web avec update automatique du contenu[VBA]: variable static initialisation
VBA - Gestion de la fenêtre windows "Téléchargement de fichier"Concaténation de champ automatique avec conditions
VBA: La méthode de l'objet Worksheet a echoué 
Plus de sujets relatifs à : [VBA excel] incrémentation et impréssion automatique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR