!!! pb pour élargir une application !!!

  • Initiateur de la discussion fabrice
  • Date de début
F

fabrice

Guest
bonsoir tout le monde

Voila, je viens de réaliser un petit modul qui me permet d'entrer la date d'unRDV, un nombre de jours pour un rappel, ....

Le PB est que ca fonctionne pour une ligne mais je ne sais pas comment étendre la selection à plusieurs dates!!!

Je vous joints un fichier pour une meilleure compréhension.

Merci de votre aide

FAb

PS: si c pas clair, ca vient de moi et je peux reformuler si vous le voulez ;=)
 

Pièces jointes

  • testrappel.xls
    23 KB · Affichages: 61
@

@+Thierry

Guest
Salut Fab

Tiens je parlais de toi et de tes question dans un long post il y a pas longtemps...

Tu veux faire quoi ? Un message par cellule ? tu vas avoir encore plus les cheveux dressés sur la tête si je te fais une boucle sur ton module !

Car tel quel çà ne fonctionne que sur une Ligne et c'est normal... Maintenant avec une petite boucle çà va le faire, mais bonsoir le stress !!

Voilà ta macro munie d'une boucle :
Sub test()
Dim MyDate As Long
Dim i As Byte ' limite à 250
MyDate = Date

For i = 2 To 4 ' = Boucle pour couvrir de la Ligne 2 à la Ligne 4
If MyDate > Cells(i, 1).Value Then
MsgBox "rdv passé"
Else
If MyDate > Cells(i, 1).Value - Cells(i, 2).Value Or MyDate = Cells(i, 1).Value - Cells(i, 2).Value Then
MsgBox Cells(i, 3).Value & " " & "le" & " " & Cells(i, 1).Value
Else
MsgBox "pas de rdv"
End If
End If
Next i
End Sub

.....Mais bonsoir la souri va exploser à cliquer sur les messages... lol


Maintenant voici une maniière un peu plus élaborée... Avec Commentaires...
Tu peux la copier/coller dans un module sur ton classeur TestRappel.xls...

Sub TestPourFab()
Dim MyDate As Long 'Variable de Type Numérique Entier pour compter la valeur de tes dates
Dim i As Byte ' limite à 250
Dim MsgManque As String 'Variable de type chaine de caractères
Dim MsgAvenir As String
Dim RVManque As Boolean 'Variable de Type VRAI/FAUX (OUI/NON )
Dim RVAvenir As Boolean

RVManque = False 'Par défaut on dit que c'est faux
RVAvenir = False

MyDate = Date 'OK pour ta date du jour

For i = 2 To 4 ' = Boucle pour couvrir de la Ligne 2 à la Ligne 4

If MyDate > Cells(i, 1).Value Then 'on a intégré le i pour se déplacer dans les lignes
MsgManque = MsgManque + "rdv passé le : " & Cells(i, 1) & vbCrLf 'on fabrique le msg avec retour ligne (que tu connais)
RVManque = True 'on met la valeur à vrai puisque il y a au moins UN RV Manqué
End If

If Not MyDate > Cells(i, 1).Value Then 'si on ne remplis PAS la condition ci-dessus on fait ça :
If MyDate > Cells(i, 1).Value - Cells(i, 2).Value Or MyDate = Cells(i, 1).Value - Cells(i, 2).Value Then
MsgAvenir = MsgAvenir + Cells(i, 3).Value & " le " & Cells(i, 1).Value & vbCrLf
RVAvenir = True 'Idem pour RV à venir
End If
End If


Next i 'on repart sur la boucle pour le prochain i......

'A PARTIR DE LA C'EST LA GESTION D'UN MESSAGE UNIQUE
If RVManque = False And RVAvenir = False Then 'On test les OUI / NON
MsgBox "Pas de Rendez-Vous"
Exit Sub 'On sort de la sub
End If

If RVManque = True And RVAvenir = False Then
MsgBox "Rendez Vous Dépassés : " & vbCrLf & MsgManque, vbCritical, "ALORS FAB T'AS ZAPPE DES RENCARDS"
Exit Sub
End If

If RVManque = False And RVAvenir = True Then
MsgBox "Rendez Vous à Venir : " & vbCrLf & MsgAvenir, vbInformation, "RENDEZ VOUS A VENIR"
Exit Sub
End If

If RVManque = True And RVAvenir = True Then
MsgBox "Rendez Vous Dépassés : " & vbCrLf & MsgManque & _
"Rendez Vous à Venir : " & MsgAvenir, vbExclamation, "ATTENTION RENDEZ VOUS MANQUES ET A VENIR"
End If
End Sub


Ce n'est pas du tout la meilleurs méthoden c'est juste un exercice pour te faire comprendre...

Si tu suis, tu apprendras à jouer avec les varilable Boolean, et comment construire une String en boucle...

Bonne Nuit (et bonne découverte de ce genre de macros, qui sont les base de VBA...)

@+Thierry
 
F

fabrice

Guest
Waou, tu m'a vraiment gaté avec cette réponse!!!

Je suis heureux car je vais enfin pouvoir essayer d'approcher ces bêtes que sont les boucles !!!!

Merci de ta réponse, j'étudie ca (ca va me prendre environ 2 à 3 ans ;=) et je te tiens au courant.

FAb
 
F

fabrice

Guest
Salut MONSIEUR Thierry

tu m'as vraiment fourni une supere appli! Bravo.

Juste une petite question, est-il possible de classer les RDV par date ???
En effet, on ne tiens pas compte de la date et dans l'énumération des RDV, la date n'entre pas en compte.

Je ne veux pas te donner du boulot entrop!!!

Merci encore pour tout,
FAb

PS: est ce que je me trompe si je dis que les explications sont mieux qu'avant??? lolll
 
F

fabrice

Guest
Bonjur tout le monde

Voila , j 'ai encore envie (la folie des grandeurs) d'élargir la plage de selection.
En fait, il ce pose quelques problemes.
Le premier vient du fait que si par exemple je remplace le 4 dans la ligne "For i = 2 To 4" par 50 par exemple, le UF déconne car il donne toutes les dates meme s'il n'y a rien
Le second probleme vient du fait que s'il y a un trou dans les RDV, l'UF donne des réponses bizard?!?!?!

Est ce que vous pourriez m'aider????

'Merci de votre aide
FAb
 

Discussions similaires

Réponses
16
Affichages
569

Statistiques des forums

Discussions
312 355
Messages
2 087 553
Membres
103 588
dernier inscrit
Tom59300Tom