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

Microsoft 365 Valeur cellule dans un macro

  • Initiateur de la discussion Initiateur de la discussion juju91
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

juju91

XLDnaute Junior
Bonjour à tous,

j'ai encore besoin de votre aide.

je souhaiterais récupérer la valeur contenue dans une cellule (nom d'un onglet) d'un feuille (PARAMETRAGE) et de l'intégrer dans une macro qui doit imprimer l'onglet définie.

Ci dessous la macro que j'ai commencé à "créer" mais , bien évidement elle ne fonctionne pas.

Sub AAAAA_IMPRESSION_Bar_sucré_fruits_coupé()
Application.ScreenUpdating = False
If UCase(Worksheets("PARAMETRAGE").Range("B20")) Then
Worksheets("Bar sucré fruits coupé").Visible = True
Worksheets("Bar sucré fruits coupé").Select
Sheets("Bar sucré fruits coupé").PrintOut From:=1, To:=1, Copies:=1
Worksheets("Bar sucré fruits coupé").Visible = False

If UCase(Worksheets("PARAMETRAGE").Range("B18")) Then
Worksheets("Bar sucré").Visible = True
Worksheets("Bar sucré").Select
Sheets("Bar sucré").PrintOut From:=1, To:=1, Copies:=1
Worksheets("Bar sucré").Visible = False
Application.ScreenUpdating = True
End If
End If
End Sub


je ne suis pas certain d'avoir été clair, je mets donc en PJ fichier simplifié.

par avance merci de votre aide.

Cdt
 

Pièces jointes

Solution
Hello,
Le premier des deux With imbriqués ne me semble pas très utile, surtout si ensuite tu ne mets pas un point devant Range.
Me trompé-je ?
Oui effectivement (merci je corrige - je l'avais mis chez moi pourtant....) mais son souci est ailleurs et probablement dans son vrai fichier

Le code peut être d'ailleurs ceci
VB:
Sub AAAAA_IMPRESSION_Bar_sucré_fruits_coupé()
Dim feuille As String
Dim cel As Range

Application.ScreenUpdating = False

For Each cel In Worksheets("PARAMETRAGE").Range("B14:B20")
    If UCase(cel.Value) = "VRAI" And cel.Offset(0, -1) <> vbNullString Then
        feuille = cel.Offset(0, -1)
        With Worksheets(feuille)
            .Visible = True
            .Select
            .PrintOut From:=1, To:=1...
 
bonjour,
je suis désolé de vous importuner de nouveau.
Apres plusieurs jour d'utilisation, j'ai un petit problème qui est apparu auquel je n'ai pas pensé lors de ma demande initiale.
Les feuilles ou la cellule A1 a pour valeur 0 ne doivent pas être imprimé.
lors que la macro est lancé, une erreur apparait lorsque la ''boucle" arrive à la premier feuille dont la valeur de la cellule A1 de cette feuille est égale a zero.
Y a t il une solution pour contourner ou résoudre ce problème.
Par avance merci

Cdt
 
Bonjour le forum,

Pour éviter à Dan de se fatiguer, dans la macro du post #14 remplacer :
VB:
.PrintOut From:=1, To:=1, Copies:=.Range("A1").Value
par :
VB:
If Int(Val(.Range("A1"))) > 0 Then .PrintOut From:=1, To:=1, Copies:=Int(Val(.Range("A1")))
Evident non ?

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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