UserForm, CheckBox et Aperçu avant impression

Jeremy992

XLDnaute Occasionnel
Bonjour le forum !

Je vous expose mon problème :)

J'ai crée un UserForm qui contient:

-5 checkbox qui doivent correspondre a mes 5 onglet
-un bouton "valider" qui doit lancer un aperçu avant impression des onglet selectionné
-un bouton "Annuler" qui quitte le userform (unload me)

Et donc, je n'arrive pas à trouver comment demander a Excel:

"Aperçu avant impression des onglet séléctionné via les checkbox"

Ex: Si checkbox1(=onglet "Bonjour) & checkbox2(=onglet "Au revoir") selectionné alors apperçu avant impression de ces deux onglets.

Auriez-vous des exemple a me fournir? Que je puisse ensuite adapter a mon fichier?
 

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

Bonjour Robert !

Ah bah oui effectivement, ce sera plus simple ! (je pensé l'avoir déjà mis, je suis tête en l'air) !


Ps: si tu te souviens, on as travailler ensemble il y a quelques jours, tu pourras voir ce qu'est devenu mon fichier grâce a toi et PierreJean :)
 

Pièces jointes

  • TestCharge-ressource BE new5.xlsm
    128.2 KB · Affichages: 85

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

Petite précision,

Sur mon premier onglet (MENU) j'ai un bouton "Impression" qui ouvre donc un Usf qui doit permettre de sélectionner les onglet à imprimer, sachant que les zone d'impression sont déjà défini par macro (Modul1 et Module 5).

Voila, voila !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : UserForm, CheckBox et Aperçu avant impression

Bonjour Jérémy, bonjour le forum,

Essaie comme ça :

Code:
Private Sub CommandButton1_Click()
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim NOS() As String 'déclare la variable NOS (Nom des OngletS)
Dim I As Byte 'déclare la variable I (Incrément)

For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    If TypeOf CTRL Is MSForms.CheckBox Then 'condition 1 : si les contrôle est une CheckBox
        If CTRL.Value = True Then 'condition 2 : si le contrôle est coché
            ReDim Preserve NOS(I) 'redimensionne le tableau NOS
            NOS(I) = CTRL.Caption 'récupère le nom de l'onglet dans la propriété [Caption] du contrôle
            I = I + 1 'incrémente I
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next CTRL 'prochain contrôle de la boucle
Me.Hide 'masque l'UserForm
Sheets(NOS).PrintOut preview:=True 'affiche le preview de la première page du tabeau NOS
Unload Me 'vide et ferme le contrôle
End Sub
 

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

It's...GOOD !!

ça marche du tonnerre dis donc ! Maintenant plus qu'à trouver pourquoi moi j'ai pas reussi ! (Oui j'aime bien apprendre de mes erreurs haha)


Tiens petit parenthèse, plutôt que d'ouvrire une nouvelle discussion.

Sur un fichier, j'ai un bouton "nouveau" avec lequel je me rend a la première cellule non vide de ma colone C.
Suite a quoi une Inputbox s'ouvre et me demande de saisir l'affaire, jusque là tout vas bien.

Mais lorsque je remplie le champ et met "ok" ça plante !

Mon code:

Code:
Sub nouveau()
Dim Affaire As String

    'Selectionne la première cellule vide
    With Columns(Selection.Column).Cells(Rows.Count, 0).End(xlUp)
      .Offset(1 + IsEmpty(.Cells), 0).Select
   End With
    
    'Saisie de l'affaire
    Affaire = InputBox("Saisissez l'affaire", "Saisie de l'affaire")

  [COLOR="#FF0000"]Range("C" & ligne) = Affaire[/COLOR]
 
    'Saisie du libellé du problème
    Libellé_du_problème = InputBox("Saisissez le libellé", "Saisie du libellé")
    Range("D" & ligne) = Libellé_du_problème
    'Saisie de la date de naissance

End Sub

Donc la logique est assez simple, je dois remplir comme ça 9 colonnes, ici j'ai mis en exemple seulement les deux première (en rouge la ligne qui bug pour le moment). Je pense que c'est un problème d'incrementation (dire que l'on remplie la cellule active et qu'on passe a la n+1, le tout jusqu'à la n+9, que je n'arrive pas a faire).


Ps: si tu le désire je peux te joindre le fichier, mais je préférerais en privée si cela est possible (on apprend vite a faire confiance aux personne qui ce donne du mal pour nous).


Merci pour tout Robert. (a ce rythme je t'invite bientôt au resto ^^)
 

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

Finalement je te joins un bout du fichier que j'ai arrangé. Et je me rend compte d'ailleurs que ma formule pour aller a la dernière cellule non vide de la colonne C n'as pas l'air de marcher... :/
 

Pièces jointes

  • ESSAI Résolution de problèmes.xlsm
    67.7 KB · Affichages: 63

grisan29

XLDnaute Accro
Re : UserForm, CheckBox et Aperçu avant impression

bonjour Jeremy

a quoi correspond ligne dans ton code car je pense que le souci vient de la
tu mets ligne as variant et tu ajoute
Code:
 ligne = Range("C65536").End(xlUp)(2).Row
mais pour "D" je ne sais pas si tu doit changer de variable et laisse le soin a Robert(bonjour)où un autre de le faire

Pascal
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : UserForm, CheckBox et Aperçu avant impression

Bonsoir Jérémy, Pascal, bonsoir le forum,

Ça plante car, comme le signale Pascal, ta variable Ligne n'est pas définie dans le code et vaut donc 0.
Et Range("C" & Ligne) ça plante...

Sinon 9 InputBoxes ! Franchement ça serait tout de même plus joli avec une seule UserForm non ?
Bon, en attendant que je te concocte une petite UserForm voici le code pour 9 InputBoxes :

Code:
Sub nouveau()
Dim O As Object 'déclare la variable O (Onglet)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim BE As String 'déclare la variable BE (Boîte d'Entrée)

Set O = Sheets("TdB_Suivi") 'définit l'onglet O
'définit la première ligne vide PLV de la colonne 3 (=C) (9 si C9 est vide, sinon la première ligne vide rencontrée)
PLV = IIf(O.Range("C9").Value = "", 9, O.Range("C8").End(xlDown).Row)
For Each CEL In O.Range("C8:K8")
    BE = InputBox("Saisissez le champs : [" & CEL.Value & "]", "SAISIE " & UCase(CEL.Value)) 'définit la boîte d'entrée AF
    'si bouton [Annuler], sort de la procédure, sinon place le résultat dans la colonne C Ligne PLV
    If BE = "" Then Exit Sub Else O.Cells(PLV, CEL.Column).Value = BE
Next CEL
End Sub

À part Charge et Impact soumis à validation de données, pourrais-tu me donner les contraintes des autres données (alphanumérique, numérique, fractions ?)... On pourra ainsi verrouiller les erreurs de saisie...
 
Dernière édition:

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

Bonjour Grisan29, Robert,

Merci de vos explications ! Je comprend mieux pourquoi ça ne marche pas...

Robert, effectivement j'avais pas penser à un Usf (le comble alors que j'en fait un a cotés ^^).

Alors en ce qui concerne les contraintes sur les données, je vais essayer de t'expliquer au mieux (et par la même occasion te donner le fichier complet, ce sera plus simple pour toi).

Affaire et Libellé peuvent comprendre du texte, des valeurs numériques et symboles (libre d'écriture)
Détection doit être remplie automatiquement par la date du jour
Prévue et réelle ne doivent contenir que des dates choisie par l'utilisateur sinon "Pas encore de date" pourrais écrire un X dans la cellule.
Responsable doit donner le choix de choisir entre: BE, Montage, Achat (rien d'autres ne doit être renseigner)
Origine écriture libre

Quelque précision qui vont venir compliquer la démarche..

Dans l'idée j'aimerais que:

Lorsque j'actionne le bouton nouveau, cela me crée 3lignes, pour ces 3lignes, 3 choix de responsable, on peut imaginer par exemple "BE - oui; non" si oui écrire BE si non écrire X, en triant par ordre alphabétique.

Si responsable = X alors Prévue, réelle et origine = X

De plus, j'ai une cellule Clôture, qui devra ce remplir par le dernière date de réelle
Par exemple BE 24/06; Montage 25/06; Achat 26/06 alors Clôture=26/06
Bien sur en tenant compte que j'ai des cellule réelle = X

Dernière précision, détection et clôture = une seule cellule pour les 3 lignes (fusion par ex).
Les 3lignes doivent contenir la même affaire et libellé (remplie une fois au début et écrit sur les 3 lignes)

Bon bien sur je suis conscient que la, ce que je demande, c'est surement la lune, mais c'est-on jamais ^^

Si vous avez besoin de précision, ce me semble bien probable, n'hésiter pas !!

Merci, au plaisir de vous lire.
 

Pièces jointes

  • Résolution de problèmes.xlsm
    65.2 KB · Affichages: 55
Dernière édition:

Jeremy992

XLDnaute Occasionnel
Re : UserForm, CheckBox et Aperçu avant impression

Haha ! Bien sûr Robert, pas de soucis !
C'est déjà extrêmement gentil de ta part de prendre le temps d'étudier ma demande :)

Et puis comme tu dis ce soir il y a match !! En espérant que la France continue de nous faire rêver !!
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : UserForm, CheckBox et Aperçu avant impression

Bonjour le fil, bonjour le forum,

Responsable doit donner le choix de choisir entre: BE, Montage, Achat (rien d'autres ne doit être renseigner)
Lorsque j'actionne le bouton nouveau, cela me crée 3lignes, pour ces 3lignes, 3 choix de responsable, on peut imaginer par exemple "BE - oui; non" si oui écrire BE si non écrire X, en triant par ordre alphabétique.

Désolé mais je ne comprends pas...

En pièce jointe ton fichier modifié avec une UserForm et le code commenté :
 

Pièces jointes

  • Jérémy_v02.xlsm
    79.3 KB · Affichages: 89

Discussions similaires

Statistiques des forums

Discussions
312 251
Messages
2 086 625
Membres
103 269
dernier inscrit
SamirSEK20