Forums XLPages

Tous les messages (criscris11)

« 1 2 3 »
Re: Activer une liste de validation sur un clic droit
#11
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 05-06-2012 22h50
Re à tous,

Voici mes deux codes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> "" Then
      Transfert = Target
      If Transfert <> ActiveSheet.Name Then
        Application.EnableEvents = False
        Target.Resize(1, 69).Copy Sheets(Transfert).[A65000].End(xlUp).Offset(1, 0)
        Target.Resize(1, 69).Delete shift:=xlUp
        Application.EnableEvents = True
      End If
    End If
  End If
End Sub
Le premier permet de déplacer la ligne sélectionnée dans un autre onglet quand on clique en colonne A (sauf sur les 2 lignes d'entêtes).

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 And Target.Count = 1 And Target.Row > 2 Then
ActiveCell.Offset(0,18).Select
MsgBox "En cas de changement de grade, ne pas oublier de changer la date.", vbCritical, "Attention..."
End If
End Sub
quand au deuxième, le curseur va se positionner dans la colonne où la nouvelle date doit être saisie en cas de changement de valeur dans la cellule sélectionnée.

Donc si j'ai bien compris :
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Column
        Case 1 'L'utilisateur à sélectionner une cellule de la colonne A
            Mon premier code
        Case 5 'L'utilisateur à sélectionner une cellule de la colonne E
            SendKeys "%{DOWN}"
    End Select
End Sub
Reste juste une question : peut-on juste délimiter les Case pour ne pas agir sur les 2 lignes d'entêtes ?
Merci encore pour vos réponses et bonne soirée à tous.

Hors Ligne
Rapport   Haut 

Re: Activer une liste de validation sur un clic droit
#12
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 05-06-2012 20h37
Bonsoir Mireille, Jean-Marie, Didier, le forum,
Merci à Mireille et à Jean-marie pour leurs pistes qui se recoupent et qui m'arrangeraient bien c'est sûr car jusqu'à présent je n'avais trouvé que la solution du clic droit pour me sortir de mon bourbier.
Je vais essayer de m'en sortir avec ces codes en attendant la confirmation ou la correction de la part de Didier s'il le juge nécessaire bien évidemment.
En attendant un grand merci et bonne soirée.

PS : Si je m'en sors pas avant demain soir, je posterais les deux codes actuels qu'il faudra essayer de fusionner.
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#13
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 05-06-2012 20h28
Bonsoir à tous,
Je viens de poster ma version 5 dans mon message du 3 juin (#17) suite à l'excellente remarque de Didier : cliquez et suivez le guide.
Merci pour vos retours éventuels et bonne soirée.
Hors Ligne
Rapport   Haut 

Activer une liste de validation sur un clic droit
#14
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 05-06-2012 16h38
Bonjour à tous,
Dans un fichier, j'utilise déjà une macro évènementielle du style worksheet_change sur une colonne mais je suis bloqué car j'aimerais bien en utilisé une autre sur une autre colonne.
Donc j'avais pensé à worksheet_BeforeRightClick mais la colonne contient une liste de validation et ma question est : peut-on déclencher cette liste par évènement du clic droit ?

Merci d'avance et bonne fin de journée.
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#15
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 05-06-2012 10h23
Bonjour Didier, le forum,
J'ai bien pris en compte ta remarque qui, en effet, n'est pas anodine.
J'ai donc parer à cette éventualité de la façon suivante :
1- j'ai enlever la référence à mDF XLcalendar au projet VBA ;
2- j'ai mis les évènements liés à mDF XLcalendar en commentaires avec les ' ;
3- je préviens l'utilisateur, par l'intermédiaire d'une boîte de dialogue qui s'affiche avant le formulaire (UserForm_Initialize) qu'il a la possibilité d'activer ces évènements en modifiant la fin du code du formulaire et en n'oubliant pas de faire référence à la macro complémentaire.

Voilà, je pense que de cette façon le problème est résolu.
Merci de me donner ton opinion et je pourrais toujours poster une v5 ce soir.

Bonne journée.
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#16
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 04-06-2012 20h59
Bonsoir,
Oui effectivement mais j'ai laissé les 2 modes d'actions : soit saisie directe dans les TextBox ou soit double-clic possible si mDF Xlcalendar est installé sur le poste. Y aurait-il un conflit possible ?
Merci pour ta réponse car si conflit il y a, le code demande une petite modification et tout du moins une petite précision.
Bonne soirée.
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#17
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 03-06-2012 18h42
Bonjour à tous,
Chose promise, chose due.
Voici le fichier finalisé avec un petite précision toutefois : les calculs se font en jours inclus c'est à dire du 03/06/2012 au 03/06/2012 est égal à 0 an 0 mois et 1 jour. Ainsi les calculs de date de début et date de fin fonctionnent de la même façon donc si vous ne travaillez pas en jours inclus il faudra modifier le code en conséquence.

Je serais ravi d'avoir vos retours à toute fin utile.
Mais avant tout, je voudrais remercier notre hôte Didier pour son travail formidable ainsi que ses précieux conseils et surtout sa grande pédagogie car en réalisant ce formulaire j'ai appris énormément.

PS : fonctionne également avec mDF XLcalendar avec un double clic dans les TxtBox.

Bonne semaine à tous.

Version 5 postée suite à l'excellente remarque de Didier.














Pièce jointe:
zip mDF_CalculDates v4.zip   [ Taille: 35.94 Ko - Téléchargements: 837 ]
zip mDF_CalculDates v5.zip   [ Taille: 36.66 Ko - Téléchargements: 847 ]
Edité par criscris11 le 05/06/2012 20:26:15
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#18
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 31-05-2012 20h41
Bonsoir Didier, chris, le forum,
Merci Didier pour la correction : effectivement (et comme confirmé par chris) après tests sur plusieurs ensembles de dates, le résultat trouvé semble être le bon.
Je touche à la fin du formulaire mais j'aurais encore une petite requête à te demander (tu vas me dire que je suis perfectionniste mais c'est surtout pour que cela soit le plus simple et le plus explicite pour les utilisateurs du fichier final) : est-il possible de combiner dans une condition If un ET et un OU comme par formule ? Cela concerne les 2 labels résultats de la partie 2 et 3 du USF. En effet, pour l'instant quand je rentre la date et que je tabule sur le txtbox suivant une date s'affiche dans le label résultat car je travaille en jour inclus alors qu'aucunes valeurs d'années, mois ou jours n'ont été renseignés. Donc en clair, je voudrais rajouter une condition OU après la première condition :
If D1 <> 0
du style :
If D1 <> 0 And (Or(Annees_Plus <> 0, Mois_Plus <> 0, Jours_Plus <> 0))
mais bien sûr ce n'est pas la bonne expression car j'ai testé et débogage of course.
Merci de bien vouloir corriger pour parfaire ma formation .

Bonne soirée à tous.
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#19
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 30-05-2012 17h55
Salut Didier, le forum,
Au moment où je voulais mettre ma version finale en pièce-jointe, je me suis aperçu d'un problème dans la calcul de durée (1ère partie du USF). En effet, j'ai adapté ton code que tu m'as donné sur mon post précédent mais cela ne fonctionne pas tout le temps. Je m'explique :

Du 23/01/1971 au 30/05/2012 (aujourd'hui) me donne bien 41 ans 4 mois et 8 jours.
En revanche, du 23/01/1971 au 31/05/2012 (demain) me donne 41 ans 5 mois et -22 jours ??? Pourquoi ?
Dès que je dépasse la date du jour dans "Au", j'obtiens un chiffre négatif soit les mois soit les jours ou parfois les deux (par exemple du 02/08/2008 au 31/12/2012 me donne 5 ans -7 mois et -1 jours).
Saurais-tu de quoi ça vient ?

Voici le code utilisé pour le calcul :

Private Sub CalculValid()
Dim D1 As Date, D2 As Date
    'Les dates début et fin sont-elles présentes et valables ?
    On Error Resume Next
    D1 = CDate(txtDu.Text)
    D2 = CDate(txtAu.Text)
    On Error GoTo 0
    'Calcul durée
    If D1 <> 0 And D2 <> 0 Then
        LabelAnnees = DateDiff("yyyy", D1, D2 + 1)
        LabelMois = DateDiff("m", D1, D2 + 1) - LabelAnnees.Caption * 12
        LabelJours = D2 + 1 - DateAdd("m", DateDiff("m", D1, D2 + 1), D1)
    End If
    'Bouton VALIDER activable ?
    'btnCalculValid.Enabled = D1 <> 0 And D2 <> 0
End Sub

Je joins également le fichier en précisant que ce n'est pas la version finalisée à cause des erreurs de calculs de durée.
Merci d'avance.

Pièce jointe:
zip mDF_CalculDates v3.zip   [ Taille: 32.36 Ko - Téléchargements: 700 ]
Hors Ligne
Rapport   Haut 

Re: Calculs de dates en VBA
#20
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 24-05-2012 22h29
Il n'y a pas de mal : l'erreur est humaine .
Et puis de toute façon, c'est la faute des accents lol.

Bonne soirée à toi et merci pour la correction.
Hors Ligne
Rapport   Haut 

« 1 2 3 »