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 !
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
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.
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
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.
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 :
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")
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 !