Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro Impression Auto et Enregistrement Auto

bobo

XLDnaute Nouveau
Bonjour,
J'ai besoin de votre aide, voila je vous explique.
J'ai un fichier pour lequelle je souhaite automatiser deux taches a l'ouverture de celui-ci a savoir :
Lorsque je saisis un chiffre type "$122343" (récupéré avec une douchette code barre) sur la cellule M9 je souhaiterais qu'Excel enregistre automatiquement le fichier avec le nom de la cellule et la date avec l'heure (minutes et secondes).
Puis il descend sur la cellule M10 et la il me lance une impression auto pour au final remonté sur la cellule M1
Je n'arrive pas les mains vides, j'ai trouvé ce code qui me pose deux soucis a savoir que je l'est crée en auto_open et lorsque j'ouvre le fichier il me le sauvegarde automatiquement sans me laisser aller sur la bonne cellule et deuxiéme point il ne m'affiche pas la date et l'heure dans la continuité du nom du fichier

Sub auto_open()
Dim str As String
Dim dir As String
dir = "C:\Users\Bopcyl\Desktop\"
Range("M8").Select
str = dir & ActiveCell.Text & ".xls"
ActiveWorkbook.SaveAs Filename:= _
str, FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Range("M9").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("M4").Select
End Sub

Merci d'avance
 

bobo

XLDnaute Nouveau
Re : Macro Impression Auto et Enregistrement Auto

Bpnjour,

Je vous explique :

J'ai 4 cellules (Client , modéle, numéro de série, bon de livraison) , ces cellules sont complétés lorsque je flash des références avec une douchette.
Ce que je veux c'est lorsque je flash le numéro de commande excel m'enregistre automatiquement le fichier dans mes documents et me l'imprime puis retourne sur la premiére cellule .
Tout en sachant que je risque de flashé le même numéro de commande plusieurs fois(mais avec un modéle produits différent) , il faudrait qu'a la suite il m'indique la date et l'heure (minutes,secondes) pour ne pas avoir de doublon de fichier et écraser le précedent.
Il faudrait que cela soit automatique affin de m'eviter de faire des aller retour entre les produits que je flash et le pc.
Je n'est plus qu'a récupéré a la fin les bons imprimer pour les joindres avec les produits et je garde les fichiers enregistrées comme base d'archive.
Merci.
 

kjin

XLDnaute Barbatruc
Re : Macro Impression Auto et Enregistrement Auto

Re,
On s'y perd un peu...
Dans ton exemple, tu "flash" en M9 et dans la macro tu indiques M8 pour le nom du fichier...
Quoi fait-on ?!

Edit : si tu déconnectes à tout va, on ira pas à la plage

A+
kjin
 
Dernière édition:

bobo

XLDnaute Nouveau
Re : Macro Impression Auto et Enregistrement Auto

Oui désolé je m'y perds moi aussi , il ne faut pas tenir compte du numero de cellule dans le code car j'ai fait plusieurs test
Partons du principe que M8 correspond au numéro du bons de livraison, il faudrait alors une fois cette cellule complété qu'il me lance la sauvegarde auto puis l'impression et enfin qu'il remonte tout en haut (cellule Client M1)
C'est un peux plus clair ?
Désolé pour la déconnexion erreur de manip ...
Merci.
 

kjin

XLDnaute Barbatruc
Re : Macro Impression Auto et Enregistrement Auto

Re,
Tu ne réponds pas à la question
1 - Quelle cellule est flashée ?
2 - Quelle cellule est utilisée pour le nom du fichier ?
A+
kjin
 

bobo

XLDnaute Nouveau
Re : Macro Impression Auto et Enregistrement Auto

alors la dérniére cellule flashé et la M8 ( qui correspond donc au numéro de compte client) et c'est celle la qui doit être aussi utiliser pour la sauvegarde car je voudrais créé une base d'archive avec le numéro de compte client .
ca te semble plus clair ?
Merci
 

kjin

XLDnaute Barbatruc
Re : Macro Impression Auto et Enregistrement Auto

Re,
ca te semble plus clair ?
Oui mais alors laborieux...
Dans le module de la feuille...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$M$8" And Target.Value <> "" Then
    Zyva Target.Value
    Application.EnableEvents = False
    Target.ClearContents 'je suppose sinon à supprimer
    Application.EnableEvents = True
    Range("M1").Activate
End If
End Sub
...et dans un module standard
Code:
Sub Zyva(cel$)
Dim fld$, sdate$, wk As Worksheet, wb As Workbook
fld = "C:\Users\Bopcyl\Desktop\"
sdate = Format(VBA.Date, "dd-mm-yyyy") & "_" & Format(VBA.Time, "hh-mm-ss")
ActiveSheet.Copy
Set wk = ActiveSheet
Set wb = ActiveWorkbook
wk.PrintOut
With wb
    With .VBProject.VBComponents(wk.CodeName).codemodule 'supprime le code
        .DeleteLines 1, .CountOfLines
    End With
    .SaveAs fld & cel & "_" & sdate & ".xls"
    .Close True
End With
End Sub
Non testé, donc à essayer avec une copie de ton fichier...
A+
kjin
 

bobo

XLDnaute Nouveau
Re : Macro Impression Auto et Enregistrement Auto

Bonjour Kjin,
J'ai encore stp besoin de ton aide, alors j'ai essayé des deux codes (encore merci car grace a toi j'ai bien avancé sur mon fichier) ca semble fonctionner sauf que quand je le lance "ereeur de compilation, nom ambigu détecte et il me surligne Zyva dans la ligne "Zyva Target.Value"
Une autre question, quand tu parles du code du module de la feuille il faut bien que je selectionne l'onglet puis visualiser le code et enfin je colle le tout et que referme.
De la même maniére pour le code dans le module standard il faut que je clique sur l'icone macro puis créé et coller le tout avant de refermer.
J'ai peux être sauté une étape (je débute en code VBA et ca ne m'étonnerais pas)
Merci d'avance
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…