pb av changement de feuilles dans macro

  • Initiateur de la discussion TOM
  • Date de début
T

TOM

Guest
Bonjour le forum,

je travaille sur un petit programme de réservation de courts de tennis et de prises d'abonnement et je me pose une question.
Mon classeur comprend 8 feuilles : 1 pour la base de données et 1 pour chaque jour de la semaine (elles sont identiques).

J'ai les mêmes macro sur chaque feuille et le problème c'est que ma macro fait sélectionner la feuille de base de donnée puis doit revenir sur la feuille d'origine.
En fait quand je suis dans mercredi par ex elle va dans bd puis doit revenir dans mercredi (sans que je passe par Sheets('mercredi').Select) mais je ne sais pas comment faire.

Donc ma question est est-ce qu'il existe un code qui fasse revenir mon action dans la feuille d'origine ?
Cela m'éviterai de devoir refaire 7 fois la même chose.

Merci pour les réponses.

TOM
 

JCA06

XLDnaute Occasionnel
Bonjour TOM,

Je suis encore bien loin d'être un pro du vba, je suis juste initié, et c'est peut-être pour cela que je n'ai pas compris ta configuration...

Par exemple, lorsque tu dis que tu as les mêmes macro sur chaque feuille, je me demande pourquoi il n'y a pas une macro unique qui conserverai la notion de feuille active.

Peut-être que si tu décrivait davantage tes macros, ce serait plus clair.

A plus.
 
T

TOM

Guest
Bonjour JCA06,

En fait je suis relativement débutant moi aussi.
Ce qui ce passe c'est que je fait une copie de ma première feuille qui est lundi.
Donc mes autres feuilles ont les mêmes boutons de commande qui lance les mêmes macros.
Par exemple, dans lundi un des boutons lance une macro qui écrit des données dans la feuille BD donc là il n'y a pas de pb mais ensuite la macro prend une des infos de BD pour la mettre dans la feuille d'origine qui est lundi.
Comme c'est la même chose pour chaque feuille, je ne sais pas comment faire.
Peut être qu'effectivement avec une feuille active ce serai possible mais je ne connait pas franchement comment ça marche.

Donc si tu peut m'éclairer

Merci.

TOM
 
T

TOM

Guest
Bonjour Yeahou, Tcho !,JCA06

Voici une partie de mon code :

Sheets('BD').Select
Range('C2').FormulaR1C1 = '=CONCATENATE(RC[-2],'' '',''/'','' '',RC[-1])'

Range('A2').Select
Selection.Copy
Sheets('Lundi').Select
Range('T8').Select
Selection.Insert Shift:=xlDown
Range('T8:T100').Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range('T8'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Sheets('BD').Select
Rows('2:2').Select
Selection.Cut
Rows('500:500').Select
ActiveSheet.Paste
Range('A10:AL500').Select
Range('A500').Activate
Selection.Sort Key1:=Range('A10'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Sheets('Lundi').Select
Range('E48').Select
ActiveCell.FormulaR1C1 = '=COUNTA(R[-40]C[15]:R[70]C[15])'
Range('E47').Select
ActiveCell.FormulaR1C1 = '=COUNTA(R[-39]C[17]:R[71]C[17])'
Range('A1').Select
bail_abnt.Hide
 

JCA06

XLDnaute Occasionnel
En tout cas, tu vois que tu ne t'es pas trompé d'adresse !

De ce que je crois comprendre, ma piste est peut-être un bon début, à savoir que si tu gardes le nom de la feuille active dans une variable définie dans le code associé au bouton, tu garderas le chemin du retour.

Comme le dit Yeahou, cela aiderait si tu nous copiait ton code, ou encore mieux si tu joignait ton fichier.

A plus.
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re bonjour

modif à la volée, devrait fonctionner quelque soit la feuille qui appelle la macro

Cordialement, A+

with Sheets( BD )
.Range( C2 ).FormulaR1C1 = =CONCATENATE(RC[-2], , / , ,RC[-1])
.Range( A2 ).Copy
end with

Range( T8 ).Insert Shift:=xlDown
Range( T8:T100 ).Sort Key1:=Range( T8 ), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

with Sheets( BD )
.Rows( 2:2 ).Cut
.Rows( 500:500 ).Paste
.Range( A10:AL500 ).Sort Key1:=Range( A10 ), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
end with

Range( E48 ).FormulaR1C1 = =COUNTA(R[-40]C[15]:R[70]C[15])
Range( E47 ).FormulaR1C1 = =COUNTA(R[-39]C[17]:R[71]C[17])
Range( A1 ).Select
bail_abnt.Hide
 
T

TOM

Guest
Rebonjour,

D'après ce que j'ai compris, je dois inscrire Activesheet au lieu de lundi, mardi... dans mon code, n'est-ce pas ?

En tout cas merci pour votre aide, je vais essayer plusieures choses.

A +
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

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