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.
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