Forums XLPages

Tous les messages (myDearFriend!)

« 1 ... 135 136 137 138 139 140 141 ... 149 »
Re: CALCUL DE DATE
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 26-12-2007 22h28
Bonsoir à tous,

Comme cancoille (alias msi chez les amis d'XLD) n'a pas daigné revenir pour nous informer de la résolution de son problème par JHA sur le fil que je cite plus haut, je clos le présent sujet... à sa place.

Merci donc à cancoille-msi pour ce bel esprit communautaire qu'on met facilement en avant quand on cherche de l'aide, mais qu'on oublie très vite quand la réponse est obtenue...

Un jour, ces mêmes personnes s'étonneront que l'aide bénévole disparaisse au profit de services payants à l'efficacité douteuse...

Bonne fin de soirée.

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Cherche à faire un répertoire
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 26-12-2007 11h19
Bonjour PowerPlus, le Forum.

Merci de ton retour, je préfixe ce sujet à [résolu].

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: CALCUL DE DATE
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 25-12-2007 23h43
Bonsoir cancoille, michel_m, JeanMarie,

Tu as tout à fait raison cancoille, nous faisons tous partie d'une communauté qui partageons une passion commune : EXCEL.

Toutefois, s'agissant justement d'une communauté, il est de bon goût d'informer les différents intervenants que ta question fait également l'objet d'une réflexion similaire ailleurs [sup](1)[/sup]... Ceci par respect pour ces derniers, mais aussi pour éviter que l'un d'eux ne cherche quelque chose qui a déjà été trouvé par ailleurs ou, au contraire, écarté car non adapté... tu le dis toi-même : les remarques de chacun sont pertinentes. Pensons alors à mettre en commun ces pertinences pour en tirer le meilleur...

Citation :
cancoille a écrit:
En effet, il faut calculer la date de départ puis la date de fin des congés, ce qui va nous donner un nombre de jours ouvrés à partir de là on fait comment après ?
Comme le précise JeanMarie, l'objectif est déjà d'obtenir le nombre de jours de congés pris exprimé en jours ouvrés.
Une fois ceci obtenu, j'imagine que la solution donnée par JHA chez notre partenaire XLD est tout à fait convenable !
Dans son exemple joint, la valeur en C4 devra donc être équivalente aux jours de congés pris exprimés en jours ouvrés et la formule en D4 fera le reste.

Petite info complémentaire au besoin : pour utiliser la fonction SERIE.JOUR.OUVRE(), il te faut cocher l'Utilitaire d'analyse dans les macros complémentaires d'Excel.

Cordialement,

[sup](1)[/sup] Et pour garder ce bel esprit communautaire, il sera également de bon ton d'informer l'un et l'autre quand le sujet sera considéré comme résolu...

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Cherche à faire un répertoire
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 25-12-2007 23h09
Re PowerPlus,

Tu trouveras ci-joint ton exemple modifié avec ce que j'ai compris du problème...

J'ai utilisé la procédure ci-dessous liée à ton bouton :
Sub Traitement()
Dim L As Long
    
'Quelle est la dernière ligne utilisée en colonne K ?
    L = Cells(Application.Rows.Count, 11).End(xlUp).Row
    '
On inscrit la moyenne générale sur la ligne du dessous
    Cells
(111).Value Range("C9").Value
    
'On inscrit la date du jour en face (colonne J)
    Cells(L + 1, 10).Value = Date
End Sub


Cordialement,
Pièce jointe:
zip PourPowerPlus.zip   [ Taille: 19.34 Ko - Téléchargements: 733 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Cherche à faire un répertoire
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 25-12-2007 20h16
Bonsoir PowerPlus, le Forum,

A vrai dire, je ne comprends pas trop ce que tu souhaites faire, ça manque un peu de détails...
Je pense qu'il serait préférable que tu joignes un exemple simple et détaillé de ce que tu souhaites obtenir et par quels moyens...

Cordialement,

PS : Jolie Pub

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: mDF XLcalendar v1.0 pour Excel 2007 en téléchargement
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 23-12-2007 16h41
Bonjour à tous,

Grand merci Michel ! C'est un beau cadeau de Noël que tu me fais là
Cet attribut idQ est l'élément essentiel qui me manquait jusqu'alors. Je vais pouvoir retravailler sur le sujet avec de nouvelles bases.
Bravo pour avoir relevé ce défi, une fois de plus, avec brio !

Et encore merci pour le super travail et les nombreuses contributions de qualité que tu apportes à la communauté Excel en général !

Bonnes fêtes de fin d'année,

Très amicalement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recherche ou index
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 09-12-2007 13h32
Bonjour cry, JCGL, Chube34, le Forum,

Oui, merci pour cette proposition et pour ce lien bienvenus cry.

Tout ce que fait Gaëtan Mourmant (que j'ai eu plaisir à rencontrer à l'occasion de la grande escapade Lyonnaise d'XLD de septembre 2005 [sup]1[/sup]) est de très très bonne qualité ! De l'excellent boulot et une pédagogie que j'envie beaucoup pour ma part.

Cordialement,

[sup]1[/sup] En visite à Lyon pas plus tard qu'hier, je suis d'ailleurs repasser devant le restaurant dans lequel nous avions passé un soirée très sympa entre ami(e)s et ça m'a rappelé de bons souvenirs

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Formattage VBA sur report Excel
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 01-12-2007 14h45
Bonjour Megaolive, le Forum,

Merci de préfixer ce fil en [résolu] lorsque tu estimeras que c'est le cas.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Formattage VBA sur report Excel
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 01-12-2007 01h18
Re,

Avant d'éditer ton post (d'ailleurs, si tu pouvais éviter de trop le faire ça serait bien lol, car ce n'est pas toujours évident à suivre...), tu demandais un remède à la "selectomania"... en voici un :

Image redimensionnée




Citation :

Megaolive a écrit:

Je viens de lire et relire le code que tu as édité...
J'ai un soucis de compréhension (avant de me relancer sur l'éditeur)

Dans la dernière sub

C est sur Lfin que je butte :p
A la lecture, j'ai l'impression qu'il va copier les lignes de conso en bas de tableau les une a la suite des autres :p

Humm, pas facile d'expliquer la démarche adoptée...

La variable Lfin marque la fin d'un bloc Conso.
Comme je vais en remontant, au départ Lfin est équivalent à la fin du tableau.
Dans la boucle, toujours en remontant, lorsque je rencontre un élément Conso (en gras), je coupe la ligne correspondante et la copie sur la ligne repérée Lfin . Immédiatement après, je redéfinie Lfin qui marquera ainsi la fin du bloc suivant, et ainsi de suite...
Le couper-coller est assuré par une procédure indépendante (DEPLACEconso) par souci de clarté. Je lui passe en argument la ligne en cours (celle que je vais couper) et la ligne "cible" (celle qui va recevoir le coller). Cette ligne "cible" est justement définie par Lfin.

J'espère que ces explications pourront t'aider à comprendre ce code...

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Formattage VBA sur report Excel
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 30-11-2007 21h11
Re Megaolive,

Comme promis, me revoici

J'ai brièvement analysé ton code et ta façon de procéder. Je vais te faire quelques remarques que je souhaite [I]constructives[/I], et qu'il convient de prendre NON PAS [I]à la lettre[/I] (je n'ai évidemment pas le monopole du savoir et de la vérité), mais tout simplement comme conseils ou suggestions. A toi d'en retenir ce que tu penses être intéressant...

[LIST][*]Tout d'abord, un bon point : l'utilisation d'[I]Option Explicit [/I](pour forcer la déclaration des variables) est une excellente chose.
[*]Par contre, la déclaration systématique de tes variables en tête de module n'est pas conseillée. Il convient de le faire plutôt en tête de chaque procédure (Sub / End sub). Pourquoi ?
Les déclarations en tête de module sont réservées aux variables dont la valeur doit être conservée et être réutilisée par plusieurs procédures (en ajoutant le mot clé [I]Public [/I]comme tu l'as fait, tu permets même de les réutiliser dans d'autres modules). On s'aperçoit que ce n'était pas ton intention de faire, car par exemple, tu déclares une fois [I]FormatSheet[/I] en tête de module, mais tu lui réaffectes sa valeur dans chaque procédure [I]Sub copy???format()[/I] par la ligne [I]Set FormatSheet = Worksheets("FORMAT")[/I]. D'une manière générale, puisque leur valeur est conservée par Excel, les variables déclarées en tête de module sont plus consommatrices de ressources que celles internes aux procédures, c'est pourquoi il convient de les utiliser avec parcimonie... Les variables déclarées à l'intérieur des procédures libèrent la mémoire qui leur est allouée dès que l'instruction [I]End Sub[/I] est rencontrée.
[*]Ensuite, j'ai vu que tu utilisais souvent la sélection des cellules (par l'instruction [I]Select[/I]) avant leur traitement. Sache qu'en VBA, c'est le plus souvent inutile. C'est même source d'erreur parfois, pas franchement agréable pour l'oeil de l'utilisateur et c'est aussi un facteur de lenteur pour application car ça ralentie considérablement les traitements. Certaines instructions vont créer d'office des sélections, c'est le cas par exemple de la méthode [I]Paste[/I], mais ça tu n'y peux rien. Par contre, si tu peux l'éviter, alors il faut le faire.
[*]Et pour finir, un autre bon point : la présentation de ton code est assez claire et bien structurée. Et les commentaires sont bien pratiques [/LIST]

Voilà c'est, j'espère, l'analyse que tu attendais...

Pour finir, voici le code issu de ma propre conception des choses. J'ai notamment pris le parti de parcourrir le tableau "à l'envers". Cette façon de faire me semble plus adaptée et en particulier pour permettre l'insertion de lignes dans le tableau sans être gêné dans les boucles... Si tu dois un jour procéder à des suppressions de lignes en boucle, je te conseille de retenir également ce même principe.

Voici le code que j'ai utilisé dans ton exemple ci-joint modifié :

Option Explicit
'myDearFriend!

Sub Traitement()
Dim FormTitre As Range, FormConso As Range, FormDetail As Range
Dim L As Long, Lmax As Long, Lfin As Long
    
    '
Mémorise les formats prédéterminés à disposition
    With Sheets
("Format")
        
Set FormTitre = .Range("B5")
        
Set FormConso = .Range("B6")
        
Set FormDetail = .Range("B7")
    
End With
    
    
'TRAITEMENT
    With Sheets("Report")
    
        '
Détermine la dernière ligne du tableau
        Lmax 
= .Range("A65536").End(xlUp).Row
        Lfin 
Lmax 1
        
        
'On part de la fin et on remonte dans le tableau
        For L = Lmax To 5 Step -1
        
            '
Si la ligne n'est pas vide
            If Application.CountA(.Rows(L)) > 0 Then
                '
Si la cellule en colonne A est vide zone de Titres
                
If .Cells(L1) = "" Then
                    MAJformat L
FormTitre
                
Else
                    
'Si la cellule en colonne A est en Gras = zone Conso
                    If .Cells(L, 1).Font.Bold = True Then
                        '
on applique le format
                        MAJformat L
FormConso
                        
'on déplace la ligne à la fin de rubrique conso
                        DEPLACEconso L, Lfin
                        Lfin = L
                    '
Sinon il s'agit d'une ligne de détail conso
                    
Else
                        
MAJformat LFormDetail
                    End 
If
                
End If
            
End If
            
        
Next L
        
    End With
    
End Sub

Private Sub MAJformat(As LongForm As Range)
    
Form.Copy
    With Sheets
("Report")
        .
Range(.Cells(L1), .Cells(L6)).PasteSpecial Paste:=xlPasteFormats
    End With
End Sub

Private Sub DEPLACEconso(Lsource As LongLcible As Long)
    
With Sheets("Report")
        
'Déplace la ligne en fin de rubrique Conso
        .Rows(Lsource).Cut Destination:=.Rows(Lcible)
        '
Insère une ligne vide supplémentaire juste en dessous
        
.Rows(Lcible 1).Insert Shift:=xlDown
    End With
End Sub



Cordialement,
Pièce jointe:
zip mDF_samplefile.zip   [ Taille: 11.79 Ko - Téléchargements: 586 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

« 1 ... 135 136 137 138 139 140 141 ... 149 »