Forums XLPages

Tous les messages (JeanMarie)

« 1 ... 23 24 25 26 27 28 29 »
Re: Calcul nombre de jours samedi,dimanche et jours fériés entre deux dates
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 18-08-2008 21h49
 Bonjour le forum

Malheureusement il n'existe pas de fonction toute faite pour répondre à ta demande.

Voici donc un code à mettre dans un module standard.
Option Explicit
'Déclaration d'un tableau de Type Date contenant 13 éléments
Dim DateFerie(13) As Date

Private Sub CreationTabFerie(vAnnee As Integer)
'Création dans un tableau des jours fériés suivant la date passée à la Sub
   DateFerie(1) = DateSerial(vAnnee, 1, 1)
   DateFerie(2) = PaquesVBA(vAnnee)
   DateFerie(3) = DateFerie(3) + 1
   DateFerie(4) = DateSerial(vAnnee, 5, 1)
   DateFerie(5) = DateSerial(vAnnee, 5, 8)
   DateFerie(6) = DateFerie(3) + 39
   DateFerie(7) = DateFerie(3) + 49
   DateFerie(8) = DateFerie(3) + 50
   DateFerie(9) = DateSerial(vAnnee, 7, 14)
   DateFerie(10) = DateSerial(vAnnee, 8, 15)
   DateFerie(11) = DateSerial(vAnnee, 11, 1)
   DateFerie(12) = DateSerial(vAnnee, 11, 11)
   DateFerie(13) = DateSerial(vAnnee, 12, 25)
End Sub

Public Function PaquesVBA(vAnnee As Integer) As Date
'Calcul de la Date de Pâques
'Code transcris d'une procédures récupérée sur une Base Technique 4D
Dim D1 As Byte
Dim D2 As Integer
Dim A As Double
Dim B As Double
Dim C As Date
Dim D As Date

D1 = 0
If vAnnee < 1700 Then
   D1 = 22
Else
   If vAnnee < 1900 Then
      D1 = 23
   Else
      If vAnnee < 2100 Then
         D1 = 24
      Else
         If vAnnee < 2300 Then D1 = 25
      End If
   End If
End If

D2 = -1
If vAnnee < 1700 Then
   D2 = 2
Else
   If vAnnee < 1800 Then
      D2 = 3
   Else
      If vAnnee < 1900 Then
         D2 = 4
      Else
         If vAnnee < 2100 Then
            D2 = 5
         Else
            If vAnnee < 2200 Then
               D2 = 6
            Else
               If vAnnee < 2300 Then D2 = 0
            End If
         End If
      End If
   End If
End If

A = ((19 * (vAnnee Mod 19)) + D1) Mod 30
B = ((2 * (vAnnee Mod 4)) + (4 * (vAnnee Mod 7)) + (6 * A) + D2) Mod 7
C = DateSerial(vAnnee, 3, 22 + A + B)
If Month(C) = 4 Then
   D = DateSerial(vAnnee, 4, A + B - 9)
   If Day(D) = 26 Then
      PaquesVBA = D - 7
   Else
      If (Day(D) = 25) And (A = 28) And (B = 6) And ((vAnnee Mod 19) > 10) Then
         PaquesVBA = D - 7
      Else
         PaquesVBA = D
      End If
   End If
Else
   PaquesVBA = C
End If

End Function

Function NbSamediDimancheFerie(vDateD As Date, vDateF As Date) As Integer
'Calcul du nombre de jours de samedi, de dimanche et jours fériés entre deux dates incluses
'vDateD est la date de début de la période
'vDateF est la date de fin de la période
Dim I As Integer'Valeur numérique correspoondant a une dateserie d'Excel
Dim J As Byte
Dim Compteur As Integer
'Initialisation du compteur
Compteur = 0
'Création du tableau des jours fériés de l'année
CreationTabFerie (Year(vDateD))
'début de la boucle
For I = vDateD To vDateF
   'Test si
   If WeekDay(I, 2) > 5 Then
      'c'est un samedi(6) ou un dimanche (7)
      Compteur = Compteur + 1
   Else
      'non ce n'est pas un samedi ou un dimanche
      'la valeur I est-elle présente dans le tableau des jours fériés
      For J = 1 To 13
         'test si la valeur I a une correspondance
         If DateFerie(J) = I Then Compteur = Compteur + 1
         'la valeur I est inférieure au jour férié contrôlé, sortie de la boucle
         If I < DateFerie(J) Then Exit For
      Next J
   End If
   'Test si le tableau des jours fériés doit être recalculé
   If Year(I) = Year(I + 1) Then CreationTabFerie (Year(vDateD) + 1)
Next I
NbSamediDimancheFerie = Compteur
End Function

J'espère que je n'ai pas dit trop de bêtises, le VBA n'étant pas mon domaine de prédilection. Didier me corrigera dès son retour. (j'y fais confiance).

Edit, j'ai oublié de préciser l'utilisation, il suffit de mettre dans une cellule la formule
=NbSamediDimancheFerie(A1;A2)
A1 ayant la date de début et A2 la date de fin (je me répète).

@+Jean-Marie


Edité par JeanMarie le 19/08/2008 01:17:27
Hors Ligne
Rapport   Haut 

Re: mDF-XLpages.com change de look !
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 01-07-2008 00h17
Bonsoir, tout le monde et en particulier à Didier

Comment resté objectif...

Très belle performance.

Et cela fonctionne correctement sur Safari

J'apprécie la taille de mes écrans... Le bandeau pseudo a pris un peu trop de place à mon goût.

J'ai aussi testé ce que tu expliquais dans le fil concernant la correction orthographique et le Ctrl+Clique droit, ça marche aussi, mais avec une petit plus, sous mon navigateur la correction automatique reste fonctionnelle. 

J'attends comme beaucoup de monde les prochaines possibilités qui nous seront offertes.

@+Jean-Marie

Sans oublier...

L'ajout d'une formule...
=SI(EQUIV(PETITE.VALEUR($A3:$J3;COLONNE()-11);$A3:$J3;0)=M3;M3+1;EQUIV(PETITE.VALEUR($A3:$J3;COLONNE()-11);$A3:$J3;0))
 L'ajout d'un code VBA

Sub ValFiltres()
'myDearFriend!  -  www.mdf-xlpages.com
Dim CritFiltres(1 To 3, 1 To 5) As Variant
Dim C As Byte
    With Sheets("Feuil1").AutoFilter
        For C = 1 To 5
            With .Filters(C)
                If .On Then
                    CritFiltres(1, C) = .Criteria1
                    If .Operator Then
                        CritFiltres(2, C) = Choose(.Operator, "Et", "Ou")
                        CritFiltres(3, C) = .Criteria2
                    End If
                End If
            End With
        Next
    End With
    With Sheets("Feuil2")
        .Range("D2:H4").Value = CritFiltres
    End With
End Sub

Hors Ligne
Rapport   Haut 

Re: mDF XLmap : bravo! et suggestions
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 01-05-2008 15h22
Bonjour à tous

Encore une très application de notre ami Didier, toujours aussi simple, avec quelques fonctions en plus, mais quelles fonctions : impression, déplacement de la puce pour une plus grand précision, saisie des coordonnées GPS.

Que nous réserveras-tu pour les prochaines versions ?.

Bonne fête du travail à tous, surtout pour toi.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: mDF MFCmultiples v5.0 (téléchargement)
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 25-03-2008 18h52
Bonsoir Didier, le forum

En voilà une bonne nouvelle...

Je vois une autre facilité pour l'utilisateur...
Ta MFCmultiples, rend en un clique ou deux de souris la mise à jour d'un format appliqué aux cellules, plus besoin de les resélectionner (au risque d'en oublier), il suffit de changer le format, et op! ç'est fait et en plus dans tout le classeur.
Ta macro c'est de l'or en barre.
Microsoft c'est fichtrement compliqué la vie, quand on voit ce que tu as réussi à faire. Nous autres utilisateurs d'excel ou formulistes, nous te remercions.

Chapeau bas, l'artiste.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 21-03-2008 22h49
Bonsoir tout le monde

Ci-joint un fichier une formule et les explications.

Je précise que c'est une solution pour le fun, je préfère sincèrement l'utilisation du code VBA pour résoudre ce type de problème, Merci à Didier pour l'avoir écrit.

Bonne soirée

@+Jean-Marie
Pièce jointe:
zip Décomposer texte.zip   [ Taille: 4.85 Ko - Téléchargements: 609 ]
Hors Ligne
Rapport   Haut 

Re: Samouraï & Sudoku par Itération (téléchargement)
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 15-03-2008 22h35
Bonsoir tout le monde

Un très grand Merci Didier, pour tout ce qui est visible, et ce qui restera dans l'ombre... C'est moi ton obligé.

Exceliennes Exceliens, si vous avez des questions concernant l'itération, vous pouvez les poser après ce fil.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: FREQUENCE pour dernière ligne
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 07-03-2008 17h24
Bonjour

Jacques, par respect pour notre ami commun, je ne pense pas que tu puisses indiquer une formule qui ne fonctionne pas dans tout les cas d'emploi d'un TCD. Dans ton premier post tu parles d'un TCD, que je vois nul part dans ton deuxième fichier. Il y a certaine ligne de conduite à respecter sur les forums.

Comme je te le disais dans mon premier post, je trouve le sujet fort utile, restons dans le cas d'un TCD, dans le cas d'une création du tableau dans une nouvelle feuille, le tableau commencera à la cellule A1, pour placer le cas échéant le champ "page", les entêtes de colonnes seront placées sur la ligne.

Dans ta formule il suffirait de rajouter 1 et faire un test sur le contenu de la cellule A1, ce qui donne
=FREQUENCE(LIGNE(DECALER($A$1;0;0;65535;1))*NON(ESTVIDE(DECALER($A$1;0;0;65535;1)));{65536;0})+1+SI(A1="";1;0)

Comme je l'avais aussi précisé dans mon premier post, ta formule ne prenant pas en compte les cellules vides, un TCD avec plusieurs champs "lignes" sera dans le choux.

Concernant la fonction DECALER dans ta formule, elle n'a aucune utilité dans ta formule, autant écrire $A$1:A66535.

Dans ton second fil, les fonctions nommées peuvent posées des problèmes mal employées...

Concernant le véritable sujet de ton fil.
Comment peut-on trouver le numéro de la dernière cellule contenant une donnée, et ce, sans utiliser la formule matricielle {=MAX(LIGNE(A1:A65535)*(A1:A66535<>""))}.

Alors voici une formule non matricielle.
=FREQUENCE(LIGNE(A1:A65535);MAX((A1:A65535<>"")*LIGNE(A1:A65535)))


En intégrant MAX(....) dans la fonction FREQUENCE, on contourne le problème de la validation par les touches Ctrl+Shit+Entrer.

Jacques néanmoins, je te remercie pour ce que tu disais dans ton premier post. J'aime bien cette fonction, merci pour ce sujet.

PS il y a aussi cette formule
=SOMMEPROD((LIGNE(A1:A100)<=MAX((A1:A100<>"")*LIGNE(A1:A100)))*1


@+Jean-Marie
Edité par JeanMarie le 07/03/2008 19:00:59
Hors Ligne
Rapport   Haut 

Re: FREQUENCE pour dernière ligne
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 04-03-2008 22h23
Bonsoir tout le monde

Je profite d'un p'tit trou dans mon occupation hebdomadaire , pour un faire un tour sur le forum.

Jacques, je ne dédaigne pas utiliser la fonction DECALER, bien au contraire, je la place dans le haut de tête des fonctions que j'utilise.

En ce qui concerne ta formule, belle utilisation de la fonction FREQUENCE (l'intervalle inversé), mais qui je le crains très peu utile en pratique. Tout dépend de la complexité de ton TCD et de l'emplacement dans la feuille de ton tableau.

Dans un TCD au plus simple toutes les cellules de la première colonne contiennent une donnée, je te suggère d'utiliser la fonction NBVAL.

Par contre, je trouve le sujet fort utile, Jacques si tu pouvais corrigé comme te le dit Jean-Claude, cela serait génial.

@+Jean-Marie
Edité par JeanMarie le 07/03/2008 16:54:55
Hors Ligne
Rapport   Haut 

Re: nommer un onglet avec le nom d'une cellule
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 20-02-2008 19h05
Bonsoir Jipi

Il est souhaitable que tu réédites ton premier message en cochant "Résolu".

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: mDF XLcalendar v1.1 (mise à jour)
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 17-02-2008 21h56
Bonsoir Didier

J'avais entrevu la version dédiée à la dernière version d'office, et j'attendais avec impatience une mise à jour. La voilà, je suis comblé, quelle facilité pour créer une suite de date avec intervalle.

Le must ton calendrier, Didier, bravo. Elle remplacera la version 3.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

« 1 ... 23 24 25 26 27 28 29 »