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

XL 2019 Problème dans un code vba

snoopy07

XLDnaute Occasionnel
Bonsoir le forum

Dans mon classeur quand je masque ma feuille Paramètre et que je lance ma macro

Ma macro se bloque au niveau du code Sheets("Paramètre").Select

Voici ma macro


VB:
Sub Compteur1_QuandChangement()

 Dim lig As Long
 
 'On selection la feuille Congés - Heures Sup
    Sheets("Congés - Heures Sup").Select
    
    'On effacce le contenu des colonnes de la feuille Congés - Heures Sup
    Range("B3:X300").ClearContents
      
   'Selection de la cellule A1
    Range("A1").Select
    
    'On a fini d'effacer la feuille Congés - Heures Sup
    
    'On selection la feuille Paramètre
  [COLOR=rgb(250, 197, 28)]  [/COLOR][COLOR=rgb(0, 0, 0)]Sheets("Paramètre").Select[/COLOR]
    
     'On effacce le contenu de la colonnes Heures Récuperation Lundi de Pentecôte
    Range("R6:S371").ClearContents
    
    
 'On a fini d'effacer les colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire de la feuille Parametre
    
    
    For lig = 5 To Cells(Rows.Count, "H").End(xlUp).Row - 1
    
    ' Remplissage des colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire pour les jours suivant
    ' E = Jours férié
    ' M = Dimanche = 1
    ' U= Congés
    ' Y = Maladie
    ' G = 29 Février
    If IsDate(Cells(lig, "H")) And Cells(lig, "E") = 1 Or IsDate(Cells(lig, "H")) And Cells(lig, "M") = 1 Or IsDate(Cells(lig, "H")) And Cells(lig, "U") = 1 Or IsDate(Cells(lig, "H")) And Cells(lig, "Y") = 1 Or IsDate(Cells(lig, "H")) And Cells(lig, "G") = 1 Then
    Cells(lig, "R").Value = 0
    Cells(lig, "S").Value = 0
    End If ' Fin remplissage des colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire pour les jours suivant

    
    ' Remplissage de la colonnes Heures Récuperation Lundi de Pentecôte
    ' M = Samedi = 7
    If IsDate(Cells(lig, "H")) And Cells(lig, "M") = 7 Then
    Cells(lig, "R").Value = 0
    End If ' fin du  Remplissage de la colonnes Heures Récuperation Lundi de Pentecôte
    
    Next lig
      
      
       'On selection la feuille Calendrier
        Sheets("Calendrier").Select
       'Selection de la cellule A1
        Range("A1").Select
End Sub

quel code doit-je utiliser pour garder ma feuille Paramètre masquer et la remplir en meme temps

Merci d avance pour votre aide
Cordialement
Snoopy 07
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Snoopy,
On ne peut pas sélectionner une feuille masquer, ... mais on peut y accéder.
Un exemple simple avec With End With :
VB:
'On a fini d'effacer les colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire de la feuille Parametre

 'Avec la feuille Paramètre
  With Sheets("Paramètre")
     'On effacce le contenu de la colonnes Heures Récuperation Lundi de Pentecôte
    .Range("R6:S371").ClearContents
    For lig = 5 To .Cells(Rows.Count, "H").End(xlUp).Row - 1
    
    ' Remplissage des colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire pour les jours suivant
    ' E = Jours férié
    ' M = Dimanche = 1
    ' U= Congés
    ' Y = Maladie
    ' G = 29 Février
    If IsDate(.Cells(lig, "H")) And .Cells(lig, "E") = 1 Or IsDate(.Cells(lig, "H")) And .Cells(lig, "M") = 1 Or IsDate(.Cells(lig, "H")) And _
        .Cells(lig, "U") = 1 Or IsDate(.Cells(lig, "H")) And .Cells(lig, "Y") = 1 Or IsDate(.Cells(lig, "H")) And .Cells(lig, "G") = 1 Then
        .Cells(lig, "R").Value = 0
        .Cells(lig, "S").Value = 0
    End If ' Fin remplissage des colonnes Heures Récuperation Lundi de Pentecôte et Heures Supplémentaire pour les jours suivant

    
    ' Remplissage de la colonnes Heures Récuperation Lundi de Pentecôte
    ' M = Samedi = 7
    If IsDate(.Cells(lig, "H")) And .Cells(lig, "M") = 7 Then
        .Cells(lig, "R").Value = 0
    End If ' fin du  Remplissage de la colonnes Heures Récuperation Lundi de Pentecôte
    
    Next lig
 End With
      
       'On selection la feuille Calendrier
        Sheets("Calendrier").Select
       'Selection de la cellule A1
        Range("A1").Select
End Sub

Ne pas oublier le point devant chaque Range ou Cell qui indique qu'on utilise la feuille déclarée dans le With.

Code évidemment non garanti. Sans fichier ....
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…