aide vba excel pour impression d'une macro

  • Initiateur de la discussion audrey desgres
  • Date de début
A

audrey desgres

Guest
bonjour, je suis une débutante en vba excel mais je viens de faire une macro qui me permet d'aller d'une feuille à une autre à partir de données d'une cellule (par exemple, dans ma cellule, j'ai marqué organic; ma macro me permet de me déplacer sur la feuille nommée organic).
je voudrais savoir comment faire une macro qui me permette d'imprimer cette feuille ainsi que deux autres dont les noms sont urssaf et assurance maladie.
merci beaucoup d'avance.
audrey
 
@

@+Thierry

Guest
Bonjour Audrey, Christophe, le Forum

La méthode que tu décris n'est pas très pratique, mais en essayant de transfigurer ta description, imaginons un exemple :

Une Feuille nommée : "TaFeuilleContenantLesNoms"

Dans cette feuille en cellule "A1" le nom d'une autre feuille
et idem en A2 une autre feuille et "A3" encore une autre. Les trois feuilles doivent au moins contenir un texte imprimable.

Toujours dans cette feuille tu écris en "B1" un numéro de 1 à 3...

Dans un module Standard tu mets ce code et tu affecte cette macro à un bouton.

Sub AudreyPrintOut()
Dim WS1 As String
Dim WS2 As String
Dim WS3 As String
Dim Typ As String

With Sheets("TaFeuilleContenantLesNoms")
WS1 = .Range("A1")
WS2 = .Range("A2")
WS3 = .Range("A3")
Typ = UCase(.Range("B1"))
End With

On Error GoTo ErrorHandler
Select Case Typ
Case "1"
Sheets(WS1).Activate
Case "1P"
With Sheets(WS1)
.Activate
.PrintOut
End With

Case "2"
Sheets(WS2).Activate
Case "2P"
With Sheets(WS2)
.Activate
.PrintOut
End With

Case "3"
Sheets(WS3).Activate
Case "3P"
With Sheets(WS3)
.Activate
.PrintOut
End With

Case "PRINT"
Sheets(WS1).PrintOut
Sheets(WS2).PrintOut
Sheets(WS3).PrintOut
Case Else
MsgBox "La valeur en B1 n'est pas valable"
End Select

Exit Sub
ErrorHandler:
MsgBox "Une des Valeurs saisie de A1 à A3 n'est pas un nom de feuille"
End Sub

Que va-t'il se passer ? (ta ta ta!!! roulements de tambours !! lol)

Si tu as bien des nom de feuilles valides dans les cellules A1 à A3, la feuille (de 1 à 3) sera sélectionnée...
Maintenant si tu as mis "3P" en cellule "B1", la feuille en A3 sera imprimée... Et si tu as mis "Print" en en cellule "B1" les trois feuilles seront imprimées... (tu peux t'amuser à ajouter des tas de "Case", le plus dur sera de les retenir ou bien tout simplement de les mettre dans une Liste de Validation...)

Ce n'est pas vraiment une référence en simplicité de macro, c'est plutôt à prendre comme un exercice si tu débutes en VBA.

L'ideal pour ce genre de manipulation de feuilles c'est un UserForm, mais il faut d'abord que tu assimiles quelques bases.

Bon Après Midi
@+Thierry
 

Statistiques des forums

Discussions
314 190
Messages
2 106 988
Membres
109 733
dernier inscrit
chardou