Retour onglet precedent (VBA)

Bonjour a tous

suite à un bouton qui m'ouvre un onglet "questionnaire", je cherche a envoyer mes résultats sur mon onglet precedent... mon souci est que le nom de mon onglet precedent est variable...

est ce que j'ai un moyen de le définir sans indiquer de nom?

Merci de votre aide et de vos lumieres

Bonjour,

suite à un bouton qui m'ouvre un onglet "questionnaire", je cherche a envoyer mes résultats sur mon onglet precedent... mon souci est que le nom de mon onglet precedent est variable...

Vous voulez les envoyer en cliquant sur un bouton ?
il faut savoir à quel moment ou après quelle action vous voulez renvoyer les résultats d'où ma question

Cordialement

Bonsoir Dan

oui en effet, c'est en cliquant sur un bouton que mes résultats doivent s'exporter sur mon précédent onglet.

Bonjour,

De base vous pouvez tester cette instruction

Sheets(ActiveSheet.Index - 1).Activate

ou ceci dans votre cas

Sheets(Sheets("questionnaire").Index - 1).Activate

L'instruction Activate ne sert qu'à activer la feuille précédente.
Il faut analyser ce que vous reportez de la feuille Questionnaire vers la feuille précédente pour avoir un code correct car il n'y a pas besoin d'activer une feuille A pour reporter des données venant d'une feuille B.

Cordialement

Bonjour

cette solution me renvoie sur l'onglet precedent (dans l'ordre des onglets) et non pas dans le dernier onglet "utilisé" si je ne me trompe pas...

pour info, mon onglet "questionnaire" ou il y a mon bouton d'envoie d'information, peut etre en 20e position alors que mon dernier onglet utilisé (celui qui doit recevoir les information) lui est en 2e position...

' integration des resultats
Sheets("5 Drivers").Range("b57:c62").Copy 'selectionne la zone de resultat
Sheets("Coaching").Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'copie en mode texte
'Sheets (ActiveSheet.Index - 1).Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("B3").Font.Bold = True

'integration de la lecure des resultats
Sheets("5 Drivers").Rows("65:70").Copy 'copie des lignes complete
Sheets("Coaching").Select
'Sheets(ActiveSheet.Index - 1).Activate
    Rows("10:10").Select
    ActiveSheet.Paste
    Rows("3:16").EntireRow.Hidden = False
    Application.CutCopyMode = False

'integration du graphique
Range("B4:C8").Select

l'onglet "Coaching" est mon onglet precedent mais a un nom variable

Bonjour

cette solution me renvoie sur l'onglet precedent (dans l'ordre des onglets) et non pas dans le dernier onglet "utilisé" si je ne me trompe pas...

Effectivement. Je n'avais pas capté la demande comme cela.
Autre essai comme ceci :

1. allez dans THISWORKBOOK et ajoutez ce code

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Name <> "questionnaire" Then i = ActiveSheet.Index
End Sub

2. Insérez un module et en première ligne ajoutez ceci

Public i As Byte

3. Dans votre code , si j'ai bien compris, vous remplacez Sheets("Coaching") par ceci

Sheets(i)

Attention que cela suppose toujours qu'avant d'aller sur votre onglet questionnaire, vous étiez bien sur l'onglet où les données seront collées.


Edit : Si ok, votre code pourrait devenir ceci

Sheets("5 Drivers").Range("b57:c62").Copy 'selectionne la zone de resultat
With Sheets(i).Range("B3")
    .PasteSpecial Paste:=xlPasteValues
    .Font.Bold = True
End With

'integration de la lecure des resultats
Sheets("5 Drivers").Rows("65:70").Copy 'copie des lignes complete
With Sheets(i)
    .Rows("10:10").Paste
    .Rows("3:16").EntireRow.Hidden = False
End With

'integration du graphique
Sheets(i).Range("B4:C8").Select

Bon, ca ne fonctionne pas comme prévu, cela me transfere les resultats sur le mauvais onglet...

Autre solution que j’envisageais:

parmis les onglets visible, je ne devrais avoir qu'1 seul onglet commencant par C, ce doit etre ici que mon resultat doit s'afficher... qu'en pensez vous?

Bon, ca ne fonctionne pas comme prévu, cela me transfere les resultats sur le mauvais onglet...

Si vous cliquez sur le "mauvais onglet" puis que vous revenez sur l'onglet questionnaire, l'instruction Sheets(i) correspond à l'onglet précédent.

Voyez le fichier joint pour tester

- Cliquez sur feuil2 ou feuil1
- sélectionnez la feuille questionnaire
- cliquez sur le bouton se trouvant dans la feuille Questionnaire. cela vous ramène sur la feuille précédente

20test-moustic.xlsm (18.00 Ko)

parmis les onglets visible, je ne devrais avoir qu'1 seul onglet commencant par C, ce doit etre ici que mon resultat doit s'afficher... qu'en pensez vous?

Oui on peut envisager aussi un code qui utilise le C et la feuille visible. Mais dites moi d'abord en fonction du fichier joint

ca fonctionne impeccablement, mais je pense savoir ou ca bug chez moi...

en fait j'ai une fiche client sur laquelle j'importe plusieurs onglets selon mes besoins, dont un onglet avec le bouton qui envoie sur mon questionnaire. du coup, lors je clique sur le bouton de ma fiche client, j'ouvre bien mon questionnaire, mais lorsque je clique sur résultat (de mon questionnaire) il écrit sur mon onglet que j'avais précédemment importer (ma matrice)

dont un onglet avec le bouton qui envoie sur mon questionnaire. du coup, lors je clique sur le bouton de ma fiche client, j'ouvre bien mon questionnaire,

Si je comprends c'est le dernier onglet importé qui doit être considéré pour ce que vous demandez ou l'onglet qui comporte le bouton vous permettant d'accéder à la feuille questionnaire ?

l'onglet me permettant d'acceder a mon questionnaire... le dernier onglet utilisé

1. Avez-vous bien placé le code dans Thisworkbook comme expliqué avant ? j'ai un doute..
2.

l'onglet me permettant d'acceder a mon questionnaire... le dernier onglet utilisé

Pour que cela fonctionne vous devez cliquez d'abord sur l'onglet qui doit recevoir les informations de résultats. Celui-ci sera considéré comme onglet précédent.
Ensuite allez sur votre onglet questionnaire et cliquez sur votre bouton pour que le code copie les résultats vers l'onglet précédent

pour moi c'est bon... mais je t'envoie mon thisworkbook et mon module en pv... il y a peut etre des contre indication du coup

solution valide

merci beaucoup Dan

Rechercher des sujets similaires à "retour onglet precedent vba"