Faire appel a une macro

  • Initiateur de la discussion Jean Marc
  • Date de début
J

Jean Marc

Guest
re le forum

je séche sur un problème sans doute très simple !!
j'ai ce code, et je vé sans doute modifier la façon d'exploiter ce code donc je souhaiterais mettre la partie de ce code entre les *******
dans un nx module car j'aurais besoin de l'appeller suivant la demnde

c'est ce que j'ai fait en faisant Sub transfert() dans le nouveau module

dans ma macro j'ai fait Call transfert et là ça plante sur :
With Sheets(saison) !!!!!!!!!!!!!!!!!!!
je ne sé pas pourquoi !
je pense que ce code va 'amuser' certain car y'a surement moyen de faire plus simple mais suis content suis déjà arrivé a ça !!
merci a vous

JM


Sub Pagegarde()

Dim saison As String
Dim WS As Object
Dim edition As String
Dim Cumul_surface As Range
Dim App_azot_total As Range
Dim Tot_azot_eng_épendu As Range


'Demande d'édition
saison = InputBox('Quelle saison voulez vous éditer ?', 'Edition page de garde + Impression')
If saison = '' Then Menu

If isWs(saison) Then


'Lancer l'édition?
edition = MsgBox('Lancer l'impression de la saison ?', vbYesNo + vbQuestion, 'IMPRESSION')
If edition = 7 Then Call Menu

'*******************************************************************

'Cumul des surfaces

Application.ScreenUpdating = False

With Sheets(saison)
Set Cumul_surface = .Range('C7:C' & .Range('C65536').End(xlUp).Row)
Set App_azot_total = .Range('X7:X' & .Range('X65536').End(xlUp).Row)
Set Tot_azot_eng_épendu = .Range('AC7:AC' & .Range('AC65536').End(xlUp).Row)
End With
'
With Sheets('Synt')
.Range('C13') = Application.WorksheetFunction.Sum(Cumul_surface)
.Range('I13') = Application.WorksheetFunction.Sum(App_azot_total)
.Range('I15') = Application.WorksheetFunction.Sum(Tot_azot_eng_épendu)

End With

' Copie des données dans Infos

Sheets('Infos').Select
Columns('V:W').Select
Application.CutCopyMode = False
Selection.ClearContents
Columns('AA:AB').Select
Application.CutCopyMode = False
Selection.ClearContents

Sheets('Synt').Select
Range('B20:C30', 'G20:H30').Select
Selection.ClearContents

Sheets(saison).Select
Range('j7:k' & Range('k65536').End(xlUp).Row).Select
Selection.Copy
Sheets('Infos').Select
Range('V2:V4').Select
ActiveSheet.Paste

Sheets(saison).Select
Range('V7:W' & Range('W65536').End(xlUp).Row).Select
Selection.Copy

' copie des infos dans Synt

Sheets('Infos').Select
Range('AA2:AA4').Select
ActiveSheet.Paste

Range('X2:Y12').Select
Selection.Copy
Sheets('Synt').Select
Range('B20').Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets('Infos').Select
Range('AC2:AD12').Select
Selection.Copy
Sheets('Synt').Select
Range('G20').Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.Goto Reference:='Macro10'
Sheets('Menu').Select
Range('A1').Select

Application.ScreenUpdating = True

'*****************************************************************

'Sheets('Synt').PrintOut
'Sheets(WS.Name).PrintOut
'Sheets('Pagegarde').PrintOut


Else: MsgBox 'la feuille n'existe pas !'
Call Menu
End If
End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

cela bug car saison est une variable que tu as déclaré dans ta macro donc quand tu appelles ta nouvelle macro il ne connait plus la valeur de ce nom saison

Si tu as mis ta macro Transfert dans un nouveau module il faur déclarer ta variable saison public et ce en tout début d'un module avant tout code du style :

Public saison As String
Sub Pagegarde()

Bon courage

EDITION

Verifies aussi tes autres variables

Message édité par: Pascal76, à: 13/04/2005 11:24
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 857
Membres
103 979
dernier inscrit
bderradji