Imprimer sous excel grace a VB

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. Merci polux31 de ton aide

    Je lance un appel général...lol
    HELP
    1. 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)
      1. 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..?
        1. 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)
        2. @Polux31Merci, 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..?
        3. @banbiouOui 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)
        4. @Polux31merci 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.
        5. @banbiouBonjour,

          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)
      2. Je pense que c'est un serveur reseau car c'est une base de donnée propre à un logiciel (Teamcenter).
        1. 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)
          1. 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...
            1. 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)
              1. 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.
                1. "user32" et "shell32.dll" sont l'équivalents des librairies que tu déclares en C ou C++.

                  ;o)
                  1. 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
                    1. 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)