Accès VBA sur Feuilles Xls masquées

A

Antoine

Guest
Quelqu'un sait-il comment écrire ou lire dans des cellules d'une feuille xls depuis une macro VBA si cette feuille est masquée?

Merci pour votre aide
Antoine
 
A

Alexis

Guest
Bonjour à tous,

Bon, j'vas encore dire une c... mais la seule manière que j'ai trouvée est la suivante :

Sheets("Truc machin chouette").visible = true
au début de ton traitement

Sheets("Truc machain chouette"). visible = false
à la fin.

Ce qui fait que ta feuille est visible uniquement quand la macro tourne.

A+

Alexis
 
@

@Christophe@

Guest
Bonjour Antoine
Cache feuil3

et dans ta macro, depuis n'importe quelle feuil, exemple feuil1

Private Sub Valeur()
ActiveCell.Value = Sheets("Feuil3").Range("A1")

End Sub

Dans ce cas il mets dans ta cellule active la valeur qu'il trouve dans ta feuil3 en A1

pour ecrire tu fais le contraire

Private Sub Valeur()
Sheets("Feuil3").Range("A1").Value = "TEST"

End Sub

Et que la feuille soit cache ou pas, il va t'écrire TEST en A1 de la Feuil3

@Christophe@
 
A

Antoine

Guest
Bonjours à tous !

J'ai mal expliqué le PB: ce n'est pas la feuille que je cache, mais le classeur entier!

par conséquent, la solution de Christophe ne marche pas. Et celle d'Alexis devrait marcher si adaptée au classeur entier, mais je pense qu'il y a plus élégant pour y arriver (excuses moi Alexis)

Merci d'avance pour votre nouvelle aide.
Antoine
 
M

michael

Guest
Bonsoir à tous,

Voici une idée (parmi d'autres) :

Sub PourTonClasseur()

Dim MyExcel As Object
Dim sPath As String

sPath = "C:\Mes Documents\Fichier.xls" '<-- Ici le chemin et nom du classeur

Set MyExcel = GetObject(sPath)

'Si tu veux écrire dans ton classeur
'il ne te reste plus qu a manipuler MyExcel
'exemple :

MyExcel.Worksheets(1).Range("A1") = "TEST"

MyExcel.save
MyExcel.Close
Set MyExcel = Nothing

End Sub



Il ne te reste plus qu'a adapter le code à tes besoins.

Michael
 
@

@+Thierry

Guest
Bonsoir au gens de ce fil

Sans essayer la Méthode proposé par Michael, je vois plus simple.

Pour écrire sur le Book4 (lequel étant le classeur Hidden)

Sub TestSurClasseurNONSauvés()
Workbooks("book4").Worksheets("Sheet1").Range("a2:c2").Value = Workbooks("book3").Worksheets("Sheet1").Range("a2:c2").Value
End Sub

Attention sur des classeurs sauvée il faut ajouter l'extention ".xls"
Sub TestSurClasseurSauvés()
Workbooks("book4.xls").Worksheets("Sheet1").Range("a2:c2").Value = Workbooks("book3.xls").Worksheets("Sheet1").Range("a2:c2").Value
End Sub

Pour faire l'inverse, ben il n'y a qu'à inverser... !

Bon Week End
@+Thierry
 

Statistiques des forums

Discussions
314 017
Messages
2 104 587
Membres
109 084
dernier inscrit
mizab