[RESOLU]exclure des feuilles de la proriété sheets.count

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

re Bruno,
ça y est c'est corrigé ça fonctionne.
Par contre, on est d'accord que la dernière fonction que tu as écrite ne détecte que les séries GGRFRFVV ?

Merci
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Re,

J'ai ajouté une autre pour compter les GGVVRFRF, ça fonctionne.
dernières questions et ma macro sera complète et résolue ( d'ailleurs je ne sais pas ou on met résolu pour les fil), est-il possible de checker tous les mois par défaut ?

merci
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Re Bruno,

J'ai ajouté le contrôle sur les variable Nb.
Par exemple pour la série GGRFRFVV :
Si NbG = 2 alors NbRF = NbRF + 1
Puis Si Nbg = 2 et NbRF = 2 alors NbVide = NbVide + 1

Code:
Function Periode2G2RF2V(TabSht() As String, Optional Lig As Long = 2)
  Dim Ind As Integer, Rng As Range
  Dim Cpte As Integer, NbG As Integer, NbRF As Integer, NbVide As Integer
  ' Initialisation des variables
 Cpte = 0: NbG = 0: NbRF = 0: NbVide = 0
  ' Application.Volatile  ' En cas de besoin
 ' Pour chaque Item du tableau
 For Ind = 0 To UBound(TabSht)
    ' Avec la feuille du nom du tableau
   With Sheets(TabSht(Ind))
      ' Définir la cellule de départ
     Set Rng = .Range("C" & Lig)
      ' Si la colonne de la ligne 1 est une date
     Do While IsDate(.Cells(1, Rng.Column))
        If Rng.Value = "G" Then ' Si la cellule contient "G"
         NbG = NbG + 1
        ElseIf Rng.Value = "RF" Then  ' Si la cellule contient "RF"
         If NbG = 2 Then NbRF = NbRF + 1
        ElseIf Rng.Value = "" Then  ' Si la cellule est vide
         ' Si les 2 variables précédentes contienne 2
         If NbG = 2 And NbRF = 2 Then NbVide = NbVide + 1
        ElseIf Rng.Value <> "" Then
          ' Si la cellule contient autre chose que "G", "RF" ou VIDE
         ' Et qu'une des variable est différente de 0
         ' On réinitialise toutes les valeurs car on sort de la série
         If NbG <> 2 Or NbRF <> 2 Or NbVide <> 2 Then NbG = 0: NbRF = 0: NbVide = 0
        End If
        'Si les 2 conditions sont remplies
       If NbG = 2 And NbRF = 2 And NbVide = 2 Then
          ' On ajoute 1 au compte
         Cpte = Cpte + 1
          NbG = 0: NbRF = 0: NbVide = 0
        End If
        Set Rng = Rng(1, 2)
      Loop
    End With
  Next Ind
  Periode2G2RF2V = Cpte
End Function
Est-il normal que si je sélectionne toutes les feuilles hormis janvier, le résultat pour Paul est de 5 ?
Je ne sais pas si le code mis à jour à corrigé le bug, mais ça semble correct maintenant.
merci
 

BrunoM45

XLDnaute Barbatruc
Re : exclure des feuilles de la proriété sheets.count

J'ai ajouté une autre pour compter les GGVVRFRF, ça fonctionne.
Génial, je pense que tu peux être fier de toi ;)

dernières questions et ma macro sera complète et résolue ( d'ailleurs je ne sais pas ou on met résolu pour les fil)
Il n'y a pas de bouton pour cela, tu edites simplement ton pemier message
et tu changes le titre avec [RESOLU] devant

est-il possible de checker tous les mois par défaut ?
Oui, il faut ajouter la ligne
Code:
.ListItems.Item(Ind + 1).Checked = True
Voici le code en entier
Code:
Private Sub UserForm_Initialize()
  Dim Ind As Integer, TabMois() As String
  ' Créer le tableau des mois à partir des valeurs séparées par une virgule
  TabMois = Split("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre", ",")
  With Me.ListView1
    With .ColumnHeaders
      .Clear
      .Add , , "Mois", 80
    End With
    .View = lvwReport
    .CheckBoxes = True
    For Ind = 0 To UBound(TabMois)
      .ListItems.Add Ind + 1, , TabMois(Ind)
      .ListItems.Item(Ind + 1).Checked = True
   Next Ind
  End With
End Sub
A+
 
Dernière édition:

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Re bonjour à tous
Merci encore pour le travail.
 

jopont

XLDnaute Impliqué
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Re bonjour,

Oups, quand je ne sélectionne aucune feuille, j'ai une erreur avec débogage.
Comment résoudre ?
merci
 

BrunoM45

XLDnaute Barbatruc
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Re,

Juste qu'au bout tu vas nous user ;)
Dans ta sub de validation
Code:
Private Sub CBtnValider_Click()
  Dim Ind As Integer, LigLv As Integer, LigSel As Long
  Dim TabSht() As String  ' Définir le tableau des feuilles
  Dim Result
  ' Initialiser les variables
  Ind = -1
  If Me.ComboBox1.Value <> "" Then
    LigSel = Me.ComboBox1.ListIndex
  Else
    MsgBox "Merci de sélectionner une personne", vbCritical, "ATTENTION !"
    Exit Sub
  End If
  ' Pour chaque ligne de la ListView
  For LigLv = 1 To Me.ListView1.ListItems.Count
    ' Si la ligne est checkée on exclu la feuille du tableau
    If Me.ListView1.ListItems(LigLv).Checked = False Then
      ' Sinon on ajoute la feuille au tableau
      ' en le redimensionnant et conservant les valeurs
      Ind = Ind + 1
      ReDim Preserve TabSht(Ind)
      TabSht(Ind) = Me.ListView1.ListItems(LigLv)
    End If
  Next LigLv
  ' Si aucune feuille n'est selectionnée => Ind =11
  If Ind = 11 Then
    MsgBox "Merci de cocher au moins une feuille", vbCritical, "ATTENTION"
    Exit Sub
  End If
... suite
A+
 

jopont

XLDnaute Impliqué
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Re Bonsoir
Oups , j'ai lu la fonction, mais la j'oblige la sélection.
Si l'utilisateur veut connaître le résultat pour toutes le feuilles, c'est à dire pour 12 mois
Promis après j'arrête :)
 

BrunoM45

XLDnaute Barbatruc
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Re,

Les feuilles sont exclues lorsqu'elle sont cochées

Le code que je t'ai donné plus haut
Code:
.ListItems.Item(Ind + 1).Checked = True
n'est donc pas à utiliser, sinon toutes les feuilles sont exclus

A+
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Bonjour,
Si je décoche toutes les feuilles, je veux que l'ensemble de l'année soit traitée par les fonctions.
C'est dans ce cas, sans aucune exclusion de feuille, que j'ai un bug.

Merci
 

BrunoM45

XLDnaute Barbatruc
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Salut,

Le tableau des mois qui figure dans le code est
Code:
TabMois = Split("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre", ",")
Donc je prends en compte les accents sur les mois

Si ta feuille se nomme "decembre" au lieu de "décembre" par exemple,
tu auras un message d'erreur, vérifie !

A+
 

jopont

XLDnaute Impliqué
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Bonjour,

Oui les mois sont avec accents.
Merci
 

jopont

XLDnaute Impliqué
Re : [RESOLU]exclure des feuilles de la proriété sheets.count

Re bonjour,

Le fichier est assez gros.
Y-a-t-il moyen de dire que si aucune feuilles n'est sélectionnée, il faut traiter sur toutes les feuilles ?

merci
 

Staple1600

XLDnaute Barbatruc
Re : exclure des feuilles de la proriété sheets.count

Bonjour

si aucune feuilles n'est sélectionnée, il faut traiter sur toutes les feuilles
Il y a forcément au moins une feuille active donc sélectionnée...
 

BrunoM45

XLDnaute Barbatruc
Re : exclure des feuilles de la proriété sheets.count

Re,

Il y a forcément au moins une feuille active donc sélectionnée...
Je suppose que Jopon parle de l'USF que je lui ai concocté, ou il faut cocher les feuilles pour lesquelles on ne veut pas de calcul ;)

@jopont
Si je décoche toutes les feuilles, je veux que l'ensemble de l'année soit traitée par les fonctions.Y-a-t-il moyen de dire que si aucune feuilles n'est sélectionnée, il faut traiter sur toutes les feuilles ?
C'est ce qui doit ce passer par rapport au code donné
As-tu au moins essayer de comprendre le code :rolleyes::confused:

C'est dans ce cas, sans aucune exclusion de feuille, que j'ai un bug.
Oui, mais là sans fichier...
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Re bonsoir
J'ai un bug au niveau de la variable IND.
Est-ce qu'avec le fichier d'exemple, ça bug chez toi si tu n'exclus aucune feuille.
merci
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Re bonsoir,

Dans le fichier d'exemple, j'ai créée les feuilles jusqu’à décembre. Il n'y avait que les feuilles de janvier à mars.
J'ai décoché tous les mois dans l'USF.
Plus de bug, le traitement se fait sur toutes les feuilles. Surement que ça venait de ça ?
Merci encore.
 

Fichiers joints

Discussions similaires


Haut Bas