Imprimer feuille avec macro IF

Bruno80

XLDnaute Nouveau
Bonjour Forum,

Comment modifier le code suivant pour que la lettre P soit = au nom qu'il y a dans la cellule.

Par exemple:
HTML:
Sub Imprimer()
Dim i As Integer
Dim x As Long
Dim P As Double
With Sheets("Menu")
  Application.EnableEvents = False 'désactive l'action des évènements
  For x = 1 To 10
  Cells(x, "A") = P
    If Cells(x, "B") = "imprimer" Then Sheets(P).PrintOut 'Preview:=True
  Next
  Application.EnableEvents = True
End With
ActiveCell.Activate
End Sub

Presentement la lettre P = 0 mais dans la cellule c'est inscrit le nom de la feuille ex: Feuil1

merci pour votre aide !!!
 

Pièces jointes

  • Book1.xls
    60 KB · Affichages: 51
  • Book1.xls
    60 KB · Affichages: 57
  • Book1.xls
    60 KB · Affichages: 52
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Imprimer feuille avec macro IF

Salut Bruno80 et le forum
Une méthode de principe :
Code:
Sub impression()
Dim X As Long
For X = 4 To Cells(Rows.Count, "B").End(xlUp).Row
    If Cells(X, "B") = "imprimer" Then Sheets(Cells(X, "A")).PrintOut
Next X
End Sub
Si on a le mot imprimer en B, impression de la feuille nommée en A.
Obligation : les noms en A doivent être les mêmes que les feuilles sous peine d'erreur.

Un "x" suffirait (avec correction de la macro) et on pet utiliser la colonne C pour définir le nombre de copies (voir les paramètres de OutPrint dans l'aide)

A+
 

Bruno80

XLDnaute Nouveau
Re : Imprimer feuille avec macro IF

Bonjour Gorfael, Bonjour fil,

J'ai testé le code
Par contre, actuellement je recoit un message d'erreur
Run-time error `13`Type mismatch

avec la portion de code suivante:
Then Sheets(Cells(X, "J")).PrintOut

Pourtant j'ai vérifié pour que les noms en A soient les même que les feuilles...
Est-ce qu'il y aurait un ajout possible pour éviter le message d'erreur

merci `a tous,

Bloomby
 

Bruno80

XLDnaute Nouveau
Re : Imprimer feuille avec macro IF

Bonjour Gorfael, Bonjour forum,

Comment modifier le code suivant pour que la lettre P soit = au nom qu'il y a dans la cellule.

Par exemple:
HTML:
Sub Imprimer()
Dim i As Integer
Dim x As Long
Dim P As Double
With Sheets("Menu")
  Application.EnableEvents = False 'désactive l'action des évènements
  For x = 1 To 10
  Cells(x, "A") = P
    If Cells(x, "B") = "imprimer" Then Sheets(P).PrintOut 'Preview:=True
  Next
  Application.EnableEvents = True
End With
ActiveCell.Activate
End Sub

Presentement la lettre P = 0 mais dans la cellule c'est inscrit le nom de la feuille ex: Feuil1

merci a tous :)
 

Gelinotte

XLDnaute Accro
Re : Imprimer feuille avec macro IF

Bonjour,

Sub Imprimer()
Dim i As Integer
Dim x As Long
Dim P As String ' P contiendra un nom, il doit donc être une chaine de caractère
With Sheets("Menu")
Application.EnableEvents = False 'désactive l'action des évènements
For x = 1 To 10
P = Cells(x, "A") ' le P = quoi > le contenue de cells(x, "a")
If Cells(x, "B") = "imprimer" Then Sheets(P).PrintOut 'Preview:=True
Next
Application.EnableEvents = True
End With
ActiveCell.Activate
End Sub

Testé.

G
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Imprimer feuille avec macro IF

Salut Bruno80 et le forum
J'ai testé le code
Par contre, actuellement je recoit un message d'erreur
Run-time error `13`Type mismatch

avec la portion de code suivante:
Then Sheets(Cells(X, "J")).PrintOut
Exemple type d'un dialogue de sourds !

Peux-tu expliquer d'où tu tires la colonne (J) ? Je croyais que c'était en A le nom de la feuille ? Dans le fichier donné, comme dans mon code, ne sont mentionnées que les colonnes A et B !
A+
 

Statistiques des forums

Discussions
312 300
Messages
2 087 018
Membres
103 433
dernier inscrit
nicolaseuropa