Bug dans code que j'ai modifié

castor30

XLDnaute Occasionnel
Bonjour chers amis,
Après avoir modifié ce code afin de le lancer à partir d'un bouton sur feuille au lieu d'une valeur dans ces trois colonnes S, T et U il y a un bug sur la ligne en orange
Je vous remercie de vous consacrer à ma demande.

VB:
Sub Heberge() 'au changement dans l'onglet   SI saisie en S T et U
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim i As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim test As Boolean 'déclare la variable TEST

'If Target.Row < 3 Then Exit Sub 'si le changement a lieu dans une ligne inférieure à 3, sort de la procédure
'si le changement a lieu ailleurs que dans les colonnes S à U, sort de la procédure
'If Application.Intersect(Target, Columns("S:U")) Is Nothing Then Exit Sub
'Application.ScreenUpdating = False 'masque les rafraîchissement d'écran
    Dim ret As Integer
'    ret = MsgBox("Souhaitez-vous imprimer l'état hébergement ?", vbYesNo)
'   If ret = vbNo Then
'       Exit Sub
'   Else
   With Sheets("Base")
    If WorksheetFunction.CountA(Range("S:U")) = 3 Then
        MsgBox ("Auncun Etat d'hébergement à imprimer")
    Sheets("Choix").Select
        Exit Sub
    End If
    End With
TV = Range("A2").CurrentRegion 'définit le tableau des valeurs TV
  [COLOR=#ff8000]  For i = 2 To UBound(TV) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)[/COLOR]
        test = False 'initialise la variable TEST
            For J = 19 To 21 'boucle 2 : sur les colonne 19 à 21 (=> colonnes S à U)
                If TV(i, J) <> "" Then 'condition si la donnée ligne I colonne J de TV n'est pas vide
                test = True 'redéfinit la variable TEST
            Exit For 'sort de la boucle 2
            End If 'fin de la condition
            Next J 'prochaine colonne de la boucle 2
        If test = False Then Rows(i).Hidden = True 'si TEST est [Faux], masque la ligne I
    Next i 'prochaine ligne de la boucle 1
'masque les colonnes
Application.Union(Columns("C:E"), Columns("H:H"), Columns("N:R"), Columns("V:V")).EntireColumn.Hidden = True
'    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
    ActiveWindow.SelectedSheets.PrintPreview        'Prévisualisation
'Worksheet_BeforeDoubleClick Target, True
'If Target.Row = 1 Then
Rows.Hidden = False: Columns.Hidden = False: Cancel = True
'    End If
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

A quoi on servi les réponses apportées à tes précédentes questions
réponse: RIEN

Tu as eu 2 réponses concernant la présence/ou non présence de données en colonnes S:U

Code:
[QUOTE="phlaurent55, post: 20142541, member: 18692"]If WorksheetFunction.CountA(Range("S:U")) = 3 Then
MsgBox ("Les colonnes S, T & U ne contiennent que les titres")
Exit Sub
End If[/QUOTE]

........... et tu te compliques l'existence en essayant d'utiliser un tableau :(

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

3 solutions sont envisageables
Changer de directeur
Enlever la ligne MsgBox
Ou joindre ton fichier avec des explications plus précises en ce qui concerne tes attentes.

À+
Philippe

Je serai très peu disponible cet après-midi
 

castor30

XLDnaute Occasionnel
Problème Sub Heberge
Lancer à partir du bouton de la feuille "Choix"; si valeur dans une colonne S, T ou U application du code (filtrage de ces colonnes) suivi de l'impression et rendre la feuille "Base" à son état d'origine (toutes les lignes et colonnes visibles).
En espérant être clair...
Avec mes remerciements.
 
Dernière édition:

grisan29

XLDnaute Accro
bonsoir Castor
mais ou est cette feuille
Lancer à partir du bouton de la feuille "Choix"
il y a EC, Visite, Base, Filtre
la " sub heberge " est pas dans le fichier joint
ton module "import "est issu de l'enregistreur de macros et a mis plein de .select qui ralentisse l'exécution du code

mets des option explicit en haut de tes codes pour te forcer a faire les déclarations de variables
 
Dernière édition:

castor30

XLDnaute Occasionnel
Bonjour Philippe, grisan29, le forum,
Je suis sincèrement désolé de vous faire perdre de votre temps, mais mon projet étant le premier que je suis loin de le maîtriser comme vous (j'ai du avoir les yeux plus grand que le ventre) Cependant, grâce à vous je suis presque au bout.
grisan, si tu veut me supprimer les .Select je te remercie, je suis avide d'apprendre et je verrais ainsi comment il faut procéder.
Je m'étais en plus trompé de fichier, fichier que je remet.
Lancer à partir du bouton de la feuille "Choix"; si valeur dans une colonne S, T ou U application du code (filtrage de ces colonnes) suivi de l'impression et rendre la feuille "Base" à son état d'origine (toutes les lignes et colonnes visibles).
En vous remerciant chaleureusement.
Le bon fichier :
http://www.cjoint.com/c/GIdlT635NmU
 
Dernière édition:

grisan29

XLDnaute Accro
bonjour
cette ligne prends dans quelle feuille sa source
Code:
TV = Range("A2").CurrentRegion 'définit le tableau des valeurs TV

Range("A2") manque le nom de feuille devant a mon avis
Code:
TV = Sheets("base").Range("A2").CurrentRegion 'définit le tableau des valeurs TV
comme ca c'est mieux la feuille "base" s'imprime en apercu
evite les cellules fusionnées dans ta feuille "Fiches"
 
Dernière édition:

castor30

XLDnaute Occasionnel
Bonjour grisan29,

Je te remercie pour ton travail, il y a cependant un petit problème, quand je clique sur le bouton de la feuille Choix "Editer Etat Hebergement" le code agit sur cette feuille "Choix" et non sur la feuille "Base"

La feuille "Fiches" est destinées à être imprimée vierge pour être replie par les personnes chaque année ou lors d'arrivée de nouvelle personnes.
 

Discussions similaires

Réponses
5
Affichages
169

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa