Récupérer un texte dans VBA

Bonjour,

J'ai bien peur que la question ai déjà été posée mais je n'arrive pas à la trouver dans le forum.

J'ai besoin de récupérer le texte qui est dans une cellule mais je n'arrive pas, quand je lance la macro on me dit : " L'indice n'appartient pas à la sélection"

Le nom de la feuille dans laquel je dois coller se trouve dans la cellule F2, or quand je mets

ShName = ActiveWorkbook.ActiveSheet.Range("F2").Text

If (ThisWorkbook.Sheets(ShName).Range("B" & i) = "") Then

J'ai aussi essayé

ShName = ActiveWorkbook.ActiveSheet.Range("F2")

If (ThisWorkbook.Sheets(ShName).Range("B" & i) = "") Then

Merci beaucoup de votre aide ! :=)

Bonjour, un exemple fonctionnel à adapter suivant le nom de la feuille et du reste aussi d'ailleurs

Dim shname As String
shname = ActiveSheet.[F2]
Sheets(shname).Activate

Merci pour ta réponse,

Je ne veux pas activer l'autre feuille en fait c'est pour ça que j'utilise active et this.

Par contre ça ne marche toujours pas

Je veux juste récupérer le texte qui est dans la cellule F2 en gros

Dans le code ci-dessus, le texte de la cellule F2 est enregistré dans la variable shname.

Par défaut j'ai declaré la variable en string mais il faut changer sa propriété selon le type de donnée qu'il y a dans F2...(ce que je ne peux pas deviner )

Dim shname As String
shname = ActiveSheet.[F2]

Bonjour,

Pour moi, l'indice n'appartient pas à la sélection, nous indique que la feuille référencée en F12 n'existe tout simplement pas dans le classeur.

Il te faut, au préalable, vérifier l'orthographe exacte de la feuille, dans ta cellule F12 et dans le nom de ta feuille. Attention aux éventuels espaces supplémentaires.

Vérifies déjà cela et si cela ne fonctionne toujours pas, passe nous le fichier qui te pose souci.

10feuille2.xlsx (7.81 Ko)
13feuille1.xlsx (8.31 Ko)

Bonjour,

J'ai fait cette vérification et ça ne marche toujours pas

Voilà un exemple de la feuille sur laquelle je travaille, je veux copier les cellules dans la colonne B de la feuille 1 dans la colonne B de la feuille 2 onglet "AMADA"

Pour l'instant je ne cherche qu'à arranger le problème précédent qui est qu'il ne trouve pas l'onglet AMADA

Bon.

C'est bien ce que je disais, sauf que ma tentative de solution n'est pas la bonne.

Il ne trouve pas la feuille dans le classeur concerné.

Pourquoi?

Simplement car le classeur ThisWorkbook étant celui qui contient la macro, il n'y a pas de feuille AMADA dedans...

Donc, référence correctement tes deux classeurs.

Un peu comme ceci : [à tester]

Dim WbkSource As Workbook, WbkDest As Workbook
Set WbkSource = ThisWorkbook
Set WbkDest = WorkBooks("Feuille2.xlsx)
With WbkDest.WorkSheets(WbkSource.WorkSheets("Stock").Range("F2").Value)
    .Range("B2") = WbkSource.WorkSheets("Stock").Range("B2").Value
End With

Au risque de passer pour quelqu'un qui comprend pas,

Il y a bien un onglet AMADA dans le fichier qui contient la Macro c'est pas ça le problème.

Là ou il y a un problème c'est que je demande d'aller dans cet onglet si je met :

ShName = "AMADA" dans mes déclarations

ma formule marche

Sauf que j'aimerai remplacer "AMADA" par la case F2 qui elle contient le texte AMADA dedans et ce parce que j'ai une 50aine de stocks dans lequel il y a toujours le nom du stock dans la case F2. Celà me permettra d'avoir 1 seule macro au lieu de 50 !

J'éspère avoir été plus clair,

Merci en tout cas de prendre le temps de me lire

Ok.

Avec les deux fichiers transmis :

Dans le fichier feuille2, placer ce test :

Sub test()
MsgBox Workbooks("feuille1-1.xlsx").Sheets("Stock").Range("F2")
End Sub

Fonctionne si les deux fichiers sont ouverts.

Si ce n'est pas le cas, dites le, on l'ouvrira/fermera par code.

Bonjour,

Je viens de me rendre compte de mon erreur ...... et elle est vraiment idiote

En fait mon code fonctionnait depuis le départ c'est juste que je le lançais depuis la feuille d'édition des codes et donc le "ActiveWorkbook" n'était pas le bon et c'est pour cela qu'il ne trouvait pas AMADA.

Merci en tout cas pour la réactivité

Rechercher des sujets similaires à "recuperer texte vba"