Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 18h35   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
Par défaut Appeler une feuille sous Excel

Bonsoir tout le monde,

j'ai un petit problème pour appeler une feuille Excel via la commande sheets.

J'ai le nom d'une feuille qui est dans une case, disons la case A1 d'une feuille rapport. Et je souhaiterais avoir accès à la feuille dont le nom est en A1.

je sais que :
Code :
debug.print chr(34) & Sheets("Rapport").Cells(1, 1) & chr(34)
donne :
"nb of borrowers from com banks" (le nom de la feuille que je veux modifier)

mais :
Code :
sheets(chr(34) & Sheets("Rapport").Cells(1, 1) & chr(34)).cells(1,1)="toto"
me donne une erreur :

Citation:
Erreur d'éxecution '9'
L'indice n'appartient pas à la sélection.
Une idée ?

Merci infiniment pour votre aide.
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h29   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Test()
Dim Nom As String
 
Nom = Worksheets("Rapport").Range("A1")
 
If Existe(Nom) Then Worksheets(Nom).Range("B3") = "Toto"
End Sub
 
'Fonction qui permet la vérification de l'existence de la feuille nommée Str
Private Function Existe(ByVal Str As String) As Boolean
Dim Ws As Worksheet
 
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name = Str Then
        Existe = True
        Exit For
    End If
Next Ws
End Function
Dans la sub Test, on vérifie d'abord l'existence dans le classeur de la feuille nommée par la valeur de la cellule A1 de la feuille Rapport à l'aide de la fonction Existe
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h39   #3
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 448
Points : 1 448
Bonjour,

Ais-je bien compris ?

Si ta feuille se nomme nb of borrowers from com banks
et que la cellule A1 de la feuille rapport contient la chaine de caractères nb of borrowers from com banks, il n’y a pas lieu de rajouter des guillemets.
Code :
1
2
3
4
5
Sub Test()
Dim Feuille As String
    Feuille = Worksheets("Rapport").Cells(1, 1)
    Worksheets(Feuille).Cells(1, 1) = "toto"
End Sub

Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h56   #4
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
Nickel ça marche !

je pense que le pb vient de la déclaration de la string.

Merci beaucoup pour votre aide !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h06.


 
 
 
 
Partenaires

Hébergement Web