même macro pour autre feuille

S

sympa

Guest
Bonjour à tout le forum,

Jean Marie m'avait écrit une macro. J'aurais aimé utiliser cette même macro en plus sur une autre feuille dont la présentation est identique, seules les données changent. Créer une nouvelle macro en changeant les noms des feuilles ne marche pas sauf si je la place dans un autre classeur. Y a t'il une solution pour avoir ces 2 feuilles ('to' et 'ri') dans le même classeur?
(NB:il y d'autres feuilles dans le classeur)

Voici le code de la macro:
Sub Liste1()
Dim Tablo As Variant
Dim Maplage1 As Range
Dim Maplage2 As Range
Dim NbrMin As Integer, NbrMax As Integer, L As Integer
Dim nbr As Integer
L = 1
With Worksheets('to')
Set Maplage1 = .Range('D1:D' & .Range('D65536').End(xlUp).Row)
Set Maplage2 = .Range('E1:E' & .Range('E65536').End(xlUp).Row)
NbrMax = Application.WorksheetFunction.Max(Maplage1)
NbrMin = Application.WorksheetFunction.Min(Maplage2)
With Worksheets('to')
.Range('J1:J1000').ClearContents
For nbr = NbrMax To NbrMin Step -10
.Cells(L + 1, 10) = nbr
L = L + 1
Next
End With
End With
End Sub

Merci d'avance à celui ou celle qui me donnera la solution.
Bonne journée.
Olivier
 

Dan

XLDnaute Barbatruc
Bonjour,

Je pensais à déclarer une variable i correspondant à la feuille active. Exemple : i = Activesheet.name -> ensuite With Worksheets('i')

Mais peux-tu fournir les infos suivantes :

Les feuille 'ti' et 'to' sont dans un même classeur ?
La macro en question est dans le classeur comportant les deux feuilles ?

;)
 
S

sympa

Guest
Bonjour Dan et Pascal,

Merci pour vos réponses.
Je viens d'essayer mais je n'y suis pas arrivé.
J'ai bien dans le même classeur la feuille 'to' avec sa macro qui fonctionne et j'ai rajouté la feuille 'ri' sur laquelle j'aimerais aussi appliquer la macro.
J'ai changé les 2 lignes de code en: With worksheet('i'). Juste avant j'ai écrit: i= Activesheet.Name (sans préciser de nom) et j'ai essayé de déclarer cette variable: Dim i As string.
La nouvelle macro ne fonctionne pas même sur la 1ère feuille.Où est mon erreur?

Salut.
Olivier
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Dan, Pascal, Sympa, le Forum

Une approche rapidos avant de fermer le Bureau

Sub Liste1()
Dim Tablo As Variant
Dim Maplage1 As Range
Dim Maplage2 As Range
Dim NbrMin As Integer, NbrMax As Integer, L As Integer
Dim nbr As Integer
Dim WS As Variant

L = 1

For Each WS In Array('To', 'Ri')

   
With Worksheets(WS)
       
Set Maplage1 = .Range('D1:D' & .Range('D65536').End(xlUp).Row)
       
Set Maplage2 = .Range('E1:E' & .Range('E65536').End(xlUp).Row)
        NbrMax = Application.WorksheetFunction.Max(Maplage1)
        NbrMin = Application.WorksheetFunction.Min(Maplage2)
       
            .Range('J1:J1000').ClearContents
           
For nbr = NbrMax To NbrMin Step -10
                .Cells(L + 1, 10) = nbr
                L = L + 1
           
Next
   
End With
Next
End Sub

Bonne Soirée et Week End
[ol]@+Thierry[/ol]
 
S

sympa

Guest
Bonjour Dan, Pascal et Thierry,

Merci à Dan et Pascal. Ca fonctionne!
J'avais bien remarqué Pascal l'absence des guillemets mais lorsque j'ai fait l'essai sans doute que je n'avais pas encore déclaré la variable i , ce qui me renvoyait un message d'erreur. La macro est dans un module avec Option Explicit.
Merci aussi à Thierry mais le résultat n'est pas identique...

Bon week end.
Olivier
 

Discussions similaires

Réponses
1
Affichages
170

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado