Imprimer sous excel grace a VB

banbiou Messages postés 70 Statut Membre -  
banbiou Messages postés 70 Statut Membre -
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.
Configuration: Windows XP
Internet Explorer 6.0

11 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  2. banbiou Messages postés 70 Statut Membre 32
     
    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
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    "user32" et "shell32.dll" sont l'équivalents des librairies que tu déclares en C ou C++.

    ;o)
    0
  4. banbiou Messages postés 70 Statut Membre 32
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  7. banbiou Messages postés 70 Statut Membre 32
     
    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
  8. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  9. banbiou Messages postés 70 Statut Membre 32
     
    Je pense que c'est un serveur reseau car c'est une base de donnée propre à un logiciel (Teamcenter).
    0
  10. banbiou Messages postés 70 Statut Membre 32
     
    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
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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
    2. banbiou Messages postés 70 Statut Membre 32 > Polux31 Messages postés 7219 Statut Membre
       
      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
    3. Polux31 Messages postés 7219 Statut Membre 1 204 > banbiou Messages postés 70 Statut Membre
       
      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
    4. banbiou Messages postés 70 Statut Membre 32 > Polux31 Messages postés 7219 Statut Membre
       
      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
    5. Polux31 Messages postés 7219 Statut Membre 1 204 > banbiou Messages postés 70 Statut Membre
       
      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
  11. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  12. banbiou Messages postés 70 Statut Membre 32
     
    Merci polux31 de ton aide

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