ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
30 mai 2005 à 08:40
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
2 juin 2005 à 04:20
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
A voir également:
Vba copier une feuille dans un autre classeur sans ouvrir
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 30 mai 2005 à 12:09
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
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 1 juin 2005 à 11:16
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
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
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 31 mai 2005 à 01:25
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 1 juin 2005 à 00:50
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 !!!
(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 ;-)