Impression d'une feuille excel sous condition PDF
pascal
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, merci d'avance car je sais qu'il y a des personnes sympa qui prennent le temps d'aider les novices comme moi
je vous expose mon probleme j'ai créé une base de données qui est alimentée par un userforme, c'est donnée sont remplient dans un fichier excel puis reprises et positionnées dans une fiche type par le biais le formules dans la feuille 2 de ce même classeur, suis a ca j'imprime la feuille2 jusque la tout est OK.
mon soucis c'est que ce classeur est utilisé par 150 personnes et dont certain pas du tout douer en informatique, et certain n'ont pas connecté d'imprimante a leur ordi, et cela ouvre par défaut le créateur PDF par défaut et plante la saisie et l'impression de ma macro.
mes questions sont:
-comment puis je palier a ça?
-est comment malgré la non impression les données reste sauvegardées dans ma base
j'avais pensé a afficher un message d'erreur si créateur PDF s'ouvre d'afficher un mesbox avec la procédure a suivre mais je ne sais pas créé une condition sur ce cas la.
merci de votre aide
voici mon code
je vous expose mon probleme j'ai créé une base de données qui est alimentée par un userforme, c'est donnée sont remplient dans un fichier excel puis reprises et positionnées dans une fiche type par le biais le formules dans la feuille 2 de ce même classeur, suis a ca j'imprime la feuille2 jusque la tout est OK.
mon soucis c'est que ce classeur est utilisé par 150 personnes et dont certain pas du tout douer en informatique, et certain n'ont pas connecté d'imprimante a leur ordi, et cela ouvre par défaut le créateur PDF par défaut et plante la saisie et l'impression de ma macro.
mes questions sont:
-comment puis je palier a ça?
-est comment malgré la non impression les données reste sauvegardées dans ma base
j'avais pensé a afficher un message d'erreur si créateur PDF s'ouvre d'afficher un mesbox avec la procédure a suivre mais je ne sais pas créé une condition sur ce cas la.
merci de votre aide
voici mon code
Dim Wb As Workbook Dim WB1 As Workbook Dim Ws As Worksheet Dim WS1 As Worksheet Dim NumLigneVide As Integer If TextSection.Text = "" Then MsgBox "renseignez Votre Section EX (T6000)", vbInformation, "champs obligatoire" TextSection.SetFocus ElseIf CboMoteur.Text = "" Then MsgBox "renseignez le Moteur a l'aide du menu déroulant", vbInformation, "champs obligatoire" CboMoteur.SetFocus ElseIf CboNom.Text = "" Then MsgBox "renseignez le nom du découvreur a l'aide du menu déroulant", vbInformation, "champs obligatoire" CboNom.SetFocus ElseIf CboMoteur.Text = "" Then MsgBox "renseignez le Moteur a l'aide du menu déroulant", vbInformation, "champs obligatoire" CboMoteur.SetFocus ElseIf CboAnomalie.Text = "" Then MsgBox "renseignez l'anomalie a l'aide du menu déroulant", vbInformation, "champs obligatoire" CboAnomalie.SetFocus ElseIf TextItem.Text = "" Then MsgBox "renseignez l'Item (4 chiffres)", vbInformation, "champs obligatoire" TextItem.SetFocus ElseIf TextRef.Text = "" Then MsgBox "renseignez la réference (10 chiffres)", vbInformation, "champs obligatoire" TextRef.SetFocus ElseIf TextNumSerie.Text = "" Then MsgBox "renseignez le Numero de série ", vbInformation, "champs obligatoire" TextNumSerie.SetFocus ElseIf TextOrdre.Text = "" Then MsgBox "renseignez l'Ordre (9 chiffres)", vbInformation, "champs obligatoire" TextOrdre.SetFocus ElseIf TextEcart.Text = "" Then MsgBox "renseignez l'écart constater de la Non-Conformitée ", vbInformation, "champs obligatoire" TextEcart.SetFocus ElseIf CboNligne.Text = "" Then MsgBox "Renseignez sur quelle ligne la Non-conformité est découverte", vbInformation, "champs obligatoire" CboNligne.SetFocus ElseIf CboMS7.Text = "" Then MsgBox "Avez-vous Suspendu votre Operation", vbInformation, "champs obligatoire" CboMS7.SetFocus Else Call classouvert Set Wb = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDTurbo+.xls") Worksheets("T+general").Activate 'on choisi la ligne vide puis le n° de ligne Range("B65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select NumLigneVide = ActiveSheet.Columns(2).Find("").Row 'on remplit les données dans le tableau ActiveSheet.Cells(NumLigneVide, 2) = TextItem.Text ActiveSheet.Cells(NumLigneVide, 3) = CboMoteur.Text ActiveSheet.Cells(NumLigneVide, 4) = TextRef.Text ActiveSheet.Cells(NumLigneVide, 5) = TextNumSerie.Text ActiveSheet.Cells(NumLigneVide, 6) = TextOrdre.Text ActiveSheet.Cells(NumLigneVide, 7) = TextSection.Text ActiveSheet.Cells(NumLigneVide, 8) = CboAnomalie.Text ActiveSheet.Cells(NumLigneVide, 9) = TextEcart.Text ActiveSheet.Cells(NumLigneVide, 10) = CboNligne.Text ActiveSheet.Cells(NumLigneVide, 11) = CboNom.Text ActiveSheet.Cells(NumLigneVide, 12) = Textdate.Text ActiveSheet.Cells(NumLigneVide, 19) = CboMS7.Text ' couleur de la ligne Range("a" & (ActiveCell.Row)).Select Range("a" & (ActiveCell.Row), "l" & (ActiveCell.Row)).Select Selection.Interior.ColorIndex = 48 'on efface le formulaire et curseur au debut TextItem.Text = "" CboMoteur.Text = "" TextRef.Text = "" TextNumSerie.Text = "" TextEcart.Text = "" TextOrdre.Text = "" TextSection.Text = "" CboNligne.Text = "" CboNom.Text = "" CboAnomalie.Text = "" CboMS7.Text = "" 'on cache l'userform frmnouvelle1.Hide ' sauvegarde WorkbookActivate.Save ' ouverture et copie sur le classeur tamp.xls Set WB1 = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDTurbo+Tamp.xls") Set WS1 = WB1.Worksheets(1) Workbooks("BDTurbo+Tamp.xls").Sheets(1).Range("b4:l10000") = Workbooks("BDTurbo+.xls").Sheets(1).Range("b4:l10000").Value Workbooks("BDTurbo+Tamp.xls").Save Workbooks("BDTurbo+Tamp.xls").Close True ' impression feuille 2 ActiveCell.Offset(0, -1).Select Selection.Copy Sheets("impression").Select Range("I3").Select ActiveSheet.Paste ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("T+General").Select 'on ferme le classeur Workbooks("BDTurbo+.xls").Close True End If
A voir également:
- Impression d'une feuille excel sous condition PDF
- Spouleur d'impression - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
1 réponse
Bonjour,
Par ou commencer?
Par ta question : Comment tester le nom de l'imprimante active, et si elle contient "pdf", ne pas imprimer. C'est cela?
Si oui, ce code devrait suffire :
Ensuite, ton code... n'est pas orthodoxe.
1- tu as deux fois, dans les tests initiaux :
2-
Inutile de sélectionner!!!
Donc, à remplacer par :
3-
à remplacer par :
4- syntaxe étrangère pour moi :
Je ne connais que : ActiveWorkBook
5-
etc.
Par ou commencer?
Par ta question : Comment tester le nom de l'imprimante active, et si elle contient "pdf", ne pas imprimer. C'est cela?
Si oui, ce code devrait suffire :
Dim Imprimante As String Imprimante = Application.ActivePrinter If InStr(UCase(Imprimante), "PDF") <> 0 Then MsgBox "Impossible d'imprimer sur ce poste", vbCritical Else ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End If
Ensuite, ton code... n'est pas orthodoxe.
1- tu as deux fois, dans les tests initiaux :
ElseIf CboMoteur.Text = "" Then MsgBox "renseignez le Moteur a l'aide du menu déroulant", vbInformation, "champs obligatoire" CboMoteur.SetFocus
2-
Worksheets("T+general").Activate 'on choisi la ligne vide puis le n° de ligne Range("B65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select NumLigneVide = ActiveSheet.Columns(2).Find("").Row
Inutile de sélectionner!!!
Donc, à remplacer par :
NumLigneVide = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row + 1
3-
Range("a" & (ActiveCell.Row)).Select Range("a" & (ActiveCell.Row), "l" & (ActiveCell.Row)).Select Selection.Interior.ColorIndex = 48
à remplacer par :
Range("A" & NumLigneVide & ":I" & NumLigneVide).Interior.ColorIndex = 48
4- syntaxe étrangère pour moi :
WorkbookActivate.Save
Je ne connais que : ActiveWorkBook
5-
Set WS1 = WB1.Worksheets(1)te sers à quoi puisqu'après tu utilises Sheets(1) au lieu de WS1...
etc.
merci encore
j aurai une question supplémentaire
s aurai tu faire une condition si lors de l ouverture de mon fichier qui mette un timer si le fichier s'ouvre en lecture seule ?
Teste quelque chose comme ceci :