Imprimer sous excel grace a VB

Fermé
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 - 15 déc. 2008 à 12:42
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 - 17 déc. 2008 à 13:58
Bonjour,

j'ai un fichier excel où je place dans une dizaine de case un code (ex. E51A06900).
Ces "code" sont des dossiers que je vais rechercher dans une base de donnée http.
c'est du style http://serveur/ ... ... /E51A06900_A.HPGL
Il y a le "_A" car c'est le niveau de la modif du dossier.
ou il m'ouvre un fichier .tiff
Toutes ses cases sont des dossiers que je dois imprimer.

Je sais pas si vous me suivez sinon n'hesitez pas à me demander des renseignements.

Alors,
j'aimerai sous excel, grace a un programme (je pense ou macro), imprimer tous mes dossiers
lorsque je clic sur un bouton.

Est ce possible?...


Merci à tous.
A voir également:

11 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 déc. 2008 à 15:21
Bonjour,

Voilà une méthode pour fichier .PDF sous Excel. Je pense que cette méthode peut s'appliquer à tout type de fichier :

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String _
    , ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Sub ImprimerFichier()
    Dim NomFichier As String
    Dim x As Long
    
    x = FindWindow("XLMAIN", Application.Caption)
    NomFichier = "C:\dossier\rapport.pdf"
    
    ShellExecute x, "print", NomFichier, "", "", 1
End Sub


;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
15 déc. 2008 à 15:37
je connais pas VB en faite ou tres peu...
je connais le C++ un petit peu donc
autant dire que la programmation et moi c'est 2. lol
pourquoi tu va cherche des choses dans le "system32 user private"
je voudrais que tu m'explique un peu en faite si tu veux bien.
merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 déc. 2008 à 19:53
"user32" et "shell32.dll" sont l'équivalents des librairies que tu déclares en C ou C++.

;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
15 déc. 2008 à 21:59
merci, dsl j'ai l'air ridicule.
mais jme dis qu'il faut bien commencer.
en tout cas merci, j'essaye ca demain et je te retien au courant si tveu bien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 déc. 2008 à 23:12
Ok, pas de blème ... et oui, il faut bien commencer un jour et puis, à quoi servirait CCM si tout le monde savait tout ? hien ?

;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
16 déc. 2008 à 09:44
salut,

alors j'ai essayer avec ton programme.. il fonctionne pr tous les dossier dans mon C:
mais je travail sur un reseau et les dossiers que je souhaite imprimer sont dans une base http\\...
alors ca ne marche pas lorsque je fais :

Sub ImprimerFichier()
Dim NomFichier As String
Dim x As Long

x = FindWindow("XLMAIN", Application.Caption)
NomFichier = "http://za21ncy/cgi-bin/iman/QtBdsweNFckqqC/E51B26100,_,spec.hpgl"

ShellExecute x, "print", NomFichier, "", "", 1
End Sub

En plus j'ai un mot de passe a valider avant de tomber sur la page en question....
Je sais c'est pas simple...
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 déc. 2008 à 12:50
Bonjour,

Je ne comprends pas ça : "je travail sur un reseau et les dossiers que je souhaite imprimer sont dans une base http\\..."

Tu es sur de l'intranet ou sur un serveur réseau. Les accès sont différents !!!

;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
16 déc. 2008 à 14:53
Je pense que c'est un serveur reseau car c'est une base de donnée propre à un logiciel (Teamcenter).
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
16 déc. 2008 à 16:36
Sub ImprimerFichier()
Dim case1

Worksheets("Commande").Range("H9") = case1
ActiveWorkbook.FollowHyperlink Address:="http://za21ncy/cgi-bin/iman/wYAB4vA1FckqqC/case1_.HPGL", _
NewWindow:=True


End Sub

Ce pti programme me permet d'ouvrir l'adresse http MAIS ce que je voudrais c'est que ce que j'ai dans ma page Excel case H9 se retrouve dans mon adress http à l'emplacement case1...

vous voyez..?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 déc. 2008 à 16:46
il faut faire comme ça :

Sub ImprimerFichier() 
Dim case1
Dim adresseHTTP As String

case1  = Worksheets("Commande").Range("H9") .Value   'case1 prend la valeur de H9

'configuration de l'adresse
adresseHTTP = "http://za21ncy/cgi-bin/iman/wYAB4vA1FckqqC/" & case1 & "_.HPGL"

ActiveWorkbook.FollowHyperlink Address:= adresseHTTP, NewWindow:=True 

End Sub 


;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
16 déc. 2008 à 17:06
Merci, c'est vrai que ca marche tout de suite mieu... :)

Sinon, peut on mettre une adresse partiel..? du style :

"http://za21ncy/cgi-bin/iman/(ici mettre une formule que je connais pas)/" & case1 & " (ici mettre une formule que je connais pas).HPGL"

pour au final, il trouve le lien

"http://za21ncy/cgi-bin/iman/wYAB4vA1FckqqC/" & case1 & "_.HPGL"

tout seul, comme un grand..?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015
16 déc. 2008 à 21:21
Oui de la même façon ... il faut faire comme ça par exemple

Dim uneformulequejeneconnaispas As Variant
Dim uneautreformulequejeneconnaispas As Variant

adresseHTTP = ""http://za21ncy/cgi-bin/iman/" & uneformulequejeneconnaispas & "/" & case1 & uneautreformulequejeneconnaispas & "etcetc"


;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
17 déc. 2008 à 10:21
merci polux31, en faite j'ai fait:

Dim a As Variant
Dim b As Variant

adresseHTTP = "http://za21ncy/cgi-bin/iman/" & a & "/" & case1 & "_" & b & ".hpgl"

mais cela m'ouvre : http://za21ncy/cgi-bin/iman//E51S8S288A_.hpgl
MAIS je voudrais qu'il ouvre: http://za21ncy/cgi-bin/iman/QxMh_DewFckqqC/E51S8S288A,A,.hpgl

Il y a tjs ces variantes "QxMh_DewFckqqC" et ",A," que je ne connais pas d'avance.

Est ce qu'il n'existe pas une fonction qui puisse m'ouvrir un lien avec des inconnu de ce type?
style : http://za21ncy/cgi-bin/iman/.../E51S8S288A... .hpgl
et qui m'ouvre: http://za21ncy/cgi-bin/iman/QxMh_DewFckqqC/E51S8S288A,A,.hpgl

Tu comprend ? c'est un peu chaud pour commencer à apprendre le VB.
Mais je suis content j'en sais plus que hier, et j'espere moins que demain...

Merci d'avance.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015
17 déc. 2008 à 11:30
Bonjour,

C'est normal que tu obtiennes ce résultat : http://za21ncy/cgi-bin/iman//E51S8S288A_.hpgl
Les variables a et b ne sont pas initialisées.

Est ce qu'il n'existe pas une fonction qui puisse m'ouvrir un lien avec des inconnu de ce type?
Pour ouvrir un lien, il faut que celui ci soit complet. Je ne connais pas de fonctions qui permettent d'anticiper le chemin d'accès à un fichier. C'est comme si tu envoyais une lettre aux USA avec uniquement le prénom et le nom du destinataire ...

Peut être existe-t-il un moyen de récupérer les chaînes manquantes de ton adresse, avant de l'imprimer ?
Si ce n'est pas le cas, l'opération est impossible.

;o)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 déc. 2008 à 16:42
Je ne sais pas te répondre alors.

Si c'est une base de donnée, il doit y avoir un protocole pour y accèder, OLE DB, DAO ou ADO en règles générales mais qui peuvent être particulières pour certaines bases. Il doit falloir accèder aux données de la base par requête type SQL si la base de données est relationnelle.

Il faut te rapprocher de la doc technique (si elle existe) du logiciel Teamcenter.

Désolé, mais je n'ai jamais eu à traiter ce genre de problème.

Bon courage.

;o)
0
banbiou Messages postés 70 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 4 août 2015 32
16 déc. 2008 à 16:46
Merci polux31 de ton aide

Je lance un appel général...lol
HELP
0