Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

capture du nom de la feuille courante dans une macro

J

JYB

Guest
Dans un classeur excel, j'ai plusieurs feuilles de calcul (Mois1, mois2,mois3...) et une feuille dans laquelle, à la fin de chaque mois, je veux recopier certaines données.
J'ai essayé de bricoler une macro qui me fait un copier coller à partir d'un mois mais quand je veux la faire fonctionner avec un autre mois, ce sont les données du premier mois (celui enregistré dans la macro) qui sont copiées.
Je ne copnnais pas le moyen de prélever le nom de la feuille courante dans une variable et d'y faire référence dans la macro.
Un p'tit coup de main ne serait pas de refus!
Merci d'avance.
 
Z

Zon

Guest
Salut à tous,

JYB mets nous ton code ce sera plus simple pour te répondre.

sinon pourquoi ne pas remplacer sheets('Mois1") par une variable par exemple à l'aide d'une inputbox comme suit:

set NomF=application.inputbox("Saisissez lz nom de feuille")

with sheets(Nomf)
blabla ....


A+++
 
J

JYB

Guest
J'ai essayé mais Excel me renvoie un msg d'erreur de type :
Erreur 13 Incompatibilité de type"

Mon classeur Excel est composé des feuilles : Doc IA, Septembre, Octobre...
Ma macro, nommée transfert, est la suivante :

Sub transfert()
' transfert Macro
' Macro enregistrée le 25/09/2003 par Jean-Yves BEDENES
Set Nomf = Application.InputBox("Saisissez le nom de feuille")
With Sheets(Nomf)
Sheets(Nomf).Select
Range("BV414:BX414").Select
Selection.Copy
Sheets("Doc IA").Select
Range("B14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("C14").Select
Sheets(Nomf).Select
Range("BS414:BU414").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Doc IA").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("D14").Select
Sheets("Nomf").Select
Range("BV420:BX420").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Doc IA").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End With
End Sub
 
Z

Zon

Guest
Salut à tous en ce week end pluvieux,

JYB, je suis désolé il ne fallait pas de set, donc voici ton code un peu amélioré avec une gestion d'erreur si le nom de feuille rentrée est incorrect.

Sub TransFert()
Dim Nomf As String, WS As Worksheet
Set WS = Sheets("Doc IA")
Nomf = Application.InputBox("Saisissez le nom de feuille")
Application.ScreenUpdating = False
On Error GoTo Errr
With Sheets(Nomf)
.Range("BV414:BX414").Copy
WS.Range("B14").PasteSpecial Paste:=xlPasteValues, Transpose:=True
.Range("BS414:BU414").Copy
WS.Range("C14").PasteSpecial Paste:=xlPasteValues, Transpose:=True
.Range("BV420:BX420").Copy
WS.Range("D14").PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
Application.CutCopyMode = False
Errr:
If Err = 9 Then MsgBox "Veuillez saisir un nom de feuille correct", vbInformation
End Sub


A+++
 

Discussions similaires

Réponses
14
Affichages
267
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…