VBA, Excel, Feuilles et Liens inter-classeurs... [Résolu]

Signaler
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
-
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
-
Slut tous,



Savez-vous s'il est possible de récupérer le nom de la feuille par défaut d'un classeur sans l'ouvrir... et en VBA???



Ou alors, comment faire un lien inter-classeur sans fournir le nom de la feuille par défaut (y'en a qu'une en fait!) ???



Question subsidiaire, comment transformer, via le VBA, un cellule
standarde contenant une date en texte du style "Mars 2005" en vraie
date afin de la décrémenter???





Merci par avance

8 réponses

Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Pour récupérer le nom de la feuiile sans ouvrir le classeur je ne pense pas que ce sois possible !!
Sinon pour faire un lien donnes le chemin complet de ton lien ex: ActiveCell.Formula = "=[Classeur1]Feuil1!$C$4"

Pour donner un format date utilises
With ActiveCell
'.NumberFormat = "dd-mm-yy" 'En Anglais par défaut
'.NumberFormatLocal = "jj-mm-aa" ' Ou en local
End With

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Re,
J'ai fais qq test avec les dates ça tourne VBA ne tiens pas compte de la case. Sinon utilises Cdate(Expression)
[A1] = CDate([A1])


Pour la récupération de données attention si ton classeur est fermé pas de mise à jour fais un test.....


Sinon rien ne t'empèche d'ouvrir ton classeur, de récupérer le nom de la feuille et de le refermer ensuite

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Bizare, Bizare,
D'abord je suis tombé sur ce code a mon grand étonnement il te permet de lire le nom de tes feuilles grace à une connexion ADO sans ouvrir le classeur......
A savoir que je n'ai pas testé ces codes .....

Sub ListExcelTables()
'd'après Ramesh, microsoft.public.data.ado
Dim cn
Dim cat
Dim xlSheet As Variant
Dim Fichier$

' Initialisation
Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")
Fichier = "D:\06OfficeVBA\01Progs\ClasseurDates\CompilDatesv3.xls"

' Open the Connection
cn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=Excel 8.0;"

' Open the catalog
Set cat.ActiveConnection = cn

For Each xlSheet In cat.Tables
MsgBox xlSheet.Name
Next

' Nettoyage Set cn Nothing: Set cat Nothing
End Sub
Pour ton autre prob c'est encore plus bizare mais bon voilà peut-être de quoi te sauver la vie.
'Un petit code de secours pour ouvrir un classeur qui
'fait planter Excel à cause de macros mal programmées
'(si si, ça arrive !)

'Recopier ce module dans le Perso.xls et relier la procédure
' "OuvrirMacrosDesactivées" à un bouton dans une barre d'outils

Sub OuvrirMacrosDesactivées()
Classeur = Application.GetOpenFileName("Classeurs Excel,*.xls")
If Classeur = False Then Exit Sub
Application.EnableEvents = False
Workbooks.Open Filename:=Classeur
Application.EnableEvents = True
End Sub
Et en dernier recourt ce code-ci mais là tu devra refaire tes UserForm en mode Desing

'Récupérer les modules de code d'un classeur Excel corrompu à partir de Word
'(le code est récupéré dans des fichiers .txt)

'\for this macro to run you need to establish a reference to the
'\Microsoft Excel xx.0 Object Library
'\also, if you get a File Open error message, hit Debug, then Continue

Sub Recover_Excel_VBA_modules()
'Run this macro from Word VBA to recover modules from corrupt Excel files.
'Rob Bruce, mpep

Dim XL As Excel.Application
Dim XLVBE As Object
Dim i As Integer, j As Integer

Set XL = New Excel.Application

XL.Workbooks.Open Filename:="h:\CR - Portfolio Template.xls" 'or whatever

Set XLVBE = XL.VBE

j = XLVBE.VBProjects(1).VBComponents.Count

For i = 1 To j
'Debug.Print XLVBE.VBProjects(1).VBComponents(i).Name
XLVBE.VBProjects(1).VBComponents(i).Export _
Filename:="C:\temp\vbe_" & (100 + i) & ".txt"
Next

XL.Quit
Set XL = Nothing

End Sub

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
23
Merci Valtrase... mais ça ne réponds pas vraiment à toutes mes questions...



En effet, je sais comment implémenter une référence externe, mais ma
question était de savoir si on pouvait se passer, via, p.e., un
paramètre par défaut ou une magouille, de mettre le nom de la feuille
lorsque le classeur n'en possède qu'une seule!



Mais en effet, moi non plus je ne crois pas que l'on puisse récupérer
le nom d'une feuille si son classeur est fermé... Pourtant, si on peut
récupérer les données d'une cellule (avec, justement, ces relations
externes), je ne vois pas ce qui nous empêcherait de récupérer la
collection des feuilles du classeur!!! Enfin, les ingénieurs de MS
n'ont décidément jamais vraiment dû coder avec leur VBA... Bon, ceci
dit, on peut pas non plus le leur reprocher et demander au VBA de faire
de l'AI en VR!!!



Cependant, je te remercis quand même de t'être donnné la peinne de répondre



Concernant la date, je vais faire des tests mais j'ai de très sérieux
doutes quant aux résultats... Surtout si en plus les mois sont en
majuscules!!! A mon avis, il faut utiliser une technique plus sérieuse
en codant un petit algo... Bref, je verrais bien



Enjoy
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
23
lol... C'est justement comme ça que j'ai dû faire du coup!!!



Merci pour l'info des dates et le test que tu as fais...



Ceci dit, là, maintenant, j'ai un autre très big problème!!! Je pense
que c'est un bug irrécupérable mais bon, si tu connais la magouille, je
t'en supplie à 4 genoux, donne moi la solution :



Aujourd'hui, lorsque j'ai ouvert mon classeur Excel, Question :
"Activer / Desactiver / Infos sur les macros". Bon, OK, tout est
normal. Mais après avoir donné l'une ou l'autre des réponses (et même
avec un reboot du PC entre deux tentatives...), rien, je n'ai
absolument rien qui s'affiche!!! C'est un peu comme si la feuille
s'ouvrait puis se refermait directement mais sans s'afficher... Y'a
bien un bref petit flash juste après la fenêtre de la question, mais
après, rien, le fichier ne se charge pas!!!

Alors là je suis vraiment déséspéré surtout que j'avais fait du beau code et j'y avais déjà passé quelques heures de débugage



Et le pire dans l'histoire c'est que mon fichier fait bien 176 Ko disk !!!



Au secours...
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
23
Hoho, alors là, franchement Val, je ne sais pas comment te remercier!!!



Mais dit moi, où as-tu bien pu trouver toutes ces sources??? Sur VBF???



Bon, je vais aller voir tout ça de plus prêt...



Et je dis déjà un grand :






MERCI








Enjoy
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Non recherche sur Google tout simplement

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
23
Merci pour l'URI... mais, si tu le veux bien, je la donne à tout le monde :



http://www.excelabo.net/



Ca peut toujours servir !!!



Enjoy



(Désolé, mais j'ai une toute petite connexion Internet... 28K... Je
dois être le dernier français dans ce cas... alors ne m'en veux pas
trop si, finalement, Google n'est tant mon ami que ça ;-)