Bug dans code que j'ai modifié

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 !

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
 
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
 
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:
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:
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:
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:
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.
 
- 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
5
Affichages
236
Réponses
10
Affichages
281
Réponses
4
Affichages
177
Réponses
2
Affichages
201
Réponses
7
Affichages
211
Retour