Ouvrir un fichier contenant un onglet préchoisi

  • Initiateur de la discussion Initiateur de la discussion elokapo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

elokapo

XLDnaute Junior
Bonjour,

Voilà mon soucis et ma/mes question(s) : j'ai 4 fichiers Excel qui ont toujours le meme nom, dans lesquels plusieurs onglets existent. Chaque nom d'onglet est différent.

Je voudrai à partir d'une inputbox (dans un fichier A) entrer le début du libellé d'un des onglets (se trouvant dans un fichier B, C OU D) , et que par magie, l'onglet s'imprime (sans ouvrir le fichier 😉 )

En fait, il faudrait lui faire chercher dans chacun des fichiers B C et D si l'onglet 'X' existe.

Je sais comment faire pour vérifier si un fichier est existant dans un répertoire, et l'ouvrir, (If Dir(".... then .... Workbooks.OpenText Filename:=".....)) mais là, sur ce problème je bloque !

Pourriez vous m'aiguiller svp ?

Merci encore pour toutes vos solutions !

Elokapo
 
Re : Ouvrir un fichier contenant un onglet préchoisi

bonjour
je pense qu'il va forcément falloir l'ouvrire pour y imprimer maisd rien tempeche de le refermer trés vite pour pas que sa ce voit (genre david coperFeild)
je pense donc qu'il faut l'ouvrire l'imprimer et le refermer et le tour est jouer
tu sait deja comme louvirre et le choisir reste a imprimer et a fermer
fermer sa tu doit sa voir aussi non ??

pour imprimer jai trouyver sa dans un coin du forum
Code:
Workbooks("rpl.xls").Sheets("sheet1").PrintOut Copies:=1, _
     ActivePrinter:="Nom de l'imprimante", Collate:=False
le nom du workbook est a adapter ainsi que la feuille je pense
si sa t'aide ou pas d'ailleur dit le quand mm
 
Dernière édition:
Re : Ouvrir un fichier contenant un onglet préchoisi

Toine à dit:
bonjour
je pense qu'il va forcément falloir l'ouvrire ... pour imprimer jai trouyver sa dans un coin du forum
Code:
Workbooks("rpl.xls").Sheets("sheet1").PrintOut Copies:=1, _
     ActivePrinter:="Nom de l'imprimante", Collate:=False
le nom du workbook est a adapter ainsi que la feuille je pense
si sa t'aide ou pas d'ailleur dit le quand mm

Hello,

Merci quand meme mais comme tu peux l'imaginer, ca ne m'arrange pas. En fait j'ai trouvé ceci sur le forum, ce qui permet de lister les noms des onglets.

Maintenant reste à savoir s'il est possible d'effectuer une recherche sur plusieurs fichiers et d'ouvrir le fichier qui contient l'onglet préchoisi.

Merci de votre aide !

A+
 
Re : Ouvrir un fichier contenant un onglet préchoisi

Bonjour Elokapo,

Il y a plusieurs post sur le m^me sujet et je répond au + récent mais, je signale ce changement dans l'autre: bref! cest le B...! 🙁 Fais attention quand m^me lors de tes prochaines demandes

ci dessous proposition; les classeurs doivent être dans le m^me dossier

Code:
Private fichier As String
Private onglet As String
Private chemin As String
Private trouve As Boolean

Sub fouiller()
'force dans le répertoire de travail
onglet = InputBox("nom de l'onglet?")
If onglet = "" Then: Exit Sub

chemin = ThisWorkbook.Path
ChDir chemin

' on réduit la sélection en utilisant un joker "*"
fichier = Dir("*.xls")
    While fichier <> ""
        inspecter
        If trouve = True Then
            Workbooks.Open fichier
            Sheets(onglet).Activate
            Exit Sub
        End If
        fichier = Dir
        
    Wend
End Sub

Sub inspecter()
Dim source As Object
Dim cat As Object
Dim feuil

fichier = chemin & "\" & fichier

' Initialisation
  Set source = CreateObject("ADODB.Connection")
  Set cat = CreateObject("ADOX.Catalog")
  
' ouvre la connection
  source.Open _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & fichier & ";Extended Properties=Excel 8.0;"
    
' Ouvre le catalogue
  Set cat.ActiveConnection = source
  
  For Each feuil In cat.tables
        If feuil.Name = onglet & "$" Then
            trouve = True
            Set source = Nothing
            Set cat = Nothing
            Exit Sub
        End If
  Next
' fermeture
  Set source = Nothing
  Set cat = Nothing
End Sub
 
Dernière édition:
Re : Ouvrir un fichier contenant un onglet préchoisi

Bonsoir tout le monde,

Michel merci 1000 fois pour cette macro qui pmarche à merveille !

Pour les différents posts, je ferai attention la prochaine fois, mais en effectuant mes recherches, j'ai trouvé des infos qui correspondaient à ce que je recherchais : je ne ferai ma demande que dans un seul post dorrénavant.

Merci encore et bonne fin d'après-midi !

Elokapo
 
Re : Ouvrir un fichier contenant un onglet préchoisi

Re bonsoir

J'ai encore une toute dernière question sur ce post : les noms de mes onglets sont assez longs, mais ils commencent tous par LUXXXX (X variant à chque fois) puis du texte (ex: 'LU4111 - Le nom de cette info')

Dans cette macro, il recherche la valeur exact de l'onglet. J'ai essayé ceci :
Code:
  Workbooks.Open fichier
            Sheets(onglet & "*").Activate

Mais cela ne marche pas. Il faudrait entrer simplement les 5 caractères : LUXXXX (X variant à chaque fois)

J'éspère m'être bien fait compris ! 😉 Sinon pas grave ! Je chercherai sur le forum !

A bientot !
 
Re : Ouvrir un fichier contenant un onglet préchoisi

bonjour

essaies (je n'ai pas testé)

au lieu de:
If feuil.Name = onglet & "$" Then

if left(feuil.name,5)=onglet then

bien que LUXXXX fasse 6 caractères mais...
 
Dernière édition:
Re : Ouvrir un fichier contenant un onglet préchoisi

Bonjour,

Cette fonction marche partiellement (contrairement à ce que je pensais et avias écrit !)

En fait il bloque la dessus :

If trouve = True Then
Workbooks.Open fichier
Sheets(onglet).Activate

Il ouvre bien le bon fichier mais ne se met sur le bon onglet, car 'onglet' correspond aux 6 premières lettres seulement de l'onglet.

Si vous avez la ou une autre solution, merci à vous !

Elokapo
 
Dernière édition:
Re : Ouvrir un fichier contenant un onglet préchoisi

Bonsoir,

à la place de:
Sheets(onglet).Activate

essaies (attention c'est sensible à la casse!)
dim cptr as byte
....
For cptr = 1 To Worksheets.Count
If Left(Sheets(cptr).Name, 5) = onglet Then
Sheets(cptr).Activate
Exit For
End If
Next
 
Re : Ouvrir un fichier contenant un onglet préchoisi

Voici le code complet :

Private fichier As String
Private onglet As String
Private chemin As String
Private trouve As Boolean

Sub fouiller()

Dim cptr As Byte

'force dans le répertoire de travail
onglet = InputBox("nom de l'onglet ?")

If onglet = "" Then: Exit Sub
chemin = "C:\Documents and Settings\HP_Administrateur\Mes documents\Mon Boulot\Boulot résussi"
ChDir chemin

' on réduit la sélection en utilisant un joker "*"
fichier = Dir("*.xls")
While fichier <> ""
inspecter
If trouve = True Then
Workbooks.Open fichier
For cptr = 1 To Worksheets.Count
If Left(Sheets(cptr).Name, 6) = onglet Then
Sheets(cptr).Activate
Exit For
End If
Next
Exit Sub
End If
fichier = Dir
Wend

End Sub

Sub inspecter()

Dim source As Object
Dim cat As Object
Dim feuil

fichier = chemin & "\" & fichier

' Initialisation
Set source = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")

' ouvre la connection
source.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & fichier & ";Extended Properties=Excel 8.0;"

' Ouvre le catalogue
Set cat.ActiveConnection = source

For Each feuil In cat.tables
If Left(feuil.Name, 6) = onglet Then
trouve = True
Set source = Nothing
Set cat = Nothing
Exit Sub
End If
Next

' fermeture
Set source = Nothing
Set cat = Nothing

End Sub
 
Re : Ouvrir un fichier contenant un onglet préchoisi

Rebonjour tout le monde,

En fait, la macro ci-dessus fonctionne très sur ma version excel, mais au boulot, sur excel 2003, il y a un bug (et d'ailleurs cela vaut pour toutes mes autres macros), c'est qu'il faut définir chaque variable !!!

On ne peut plus simplement écrire par exemple : feuil = inputbox("...") mais il faut prédéfinir comme ceci : dim feuil as String par exemple !

Alors sur la macro ci dessus, je bloque sur la variable feuil qui n'est pas définit.

Si quelqu'un pourrait d'aider svp j'en serai ravi ! J'ai essayé avec variable, oui qqch comme DOX.table (je pense me tromper) mais cela ne fonctionne pas !

A très bientot !
Elokapo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour