Impossible de trouvé la solution à mon PB, besoin d'expert lol
cs_Angecedric
Messages postés1Date d'inscriptionmardi 25 octobre 2011StatutMembreDernière intervention26 octobre 2011
-
26 oct. 2011 à 10:35
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
26 oct. 2011 à 10:50
Bonjour à tous,
Depuis plusieur semaine j'ai modifié un programme pour la gestion de salle de réunion sous EXCEL.
Après la création d'une salle, l'utilisateur peut insérer une réservation par date en indiquant l'heure.
A l'heure actuel l'utilisateur pouvait supprimer une réservation en indiquant la date et le nom de la personne.
Cependant la réservation supprimé était la plus ancienne. Cette supression ne tenant pas compte des salles.
j'aimerais que l'utilisateur puissent suprimer une reservation toujours en choisissant la date le nom et également la salle.
J'ai modifié le code de la fenêtre ainsi que le début du code mais je ne parvient pas établir la corélation entre la salle et la suppression:
Private Sub CmbValider_Click()
If ComboNom = "" Then
MsgBox " le nom de l'utilisateur n'est pas documenté "
Exit Sub
End If
If ComboDate = "" Then
MsgBox " la date de la réservation n'est pas documentée "
Exit Sub
End If
If ComboSalle = "" Then
MsgBox " la salle de la réservation n'est pas documentée "
Exit Sub
End If '--> ce que j'ai déjà ajouté
For compteurFeuille = 1 To Worksheets.Count
If Worksheets(compteurFeuille).Name <> "FeuilleDeTravail" And Worksheets(compteurFeuille).Name <> "Menu" _
And Worksheets(compteurFeuille).Name <> "Cadre" And Worksheets(compteurFeuille).Name <> "Synthèse" _
And Worksheets(compteurFeuille).Name <> "AIDE" And Worksheets(compteurFeuille).Name <> "Synthèse" _
And Worksheets(compteurFeuille).Name <> "TCD" Then
'MsgBox Sheets(compteurFeuille).Name
LigneDeDate = Application.WorksheetFunction _
.Match(CLng(CDate(ComboDate)), Worksheets(compteurFeuille).Range("A1:A368"), 0)
On Error GoTo GestionDesErreurs
ColonneDuNom = Application.WorksheetFunction _
.Match(ComboNom + "*", Worksheets(compteurFeuille).Range("B" & LigneDeDate & ":Z" & LigneDeDate), 0)
On Error GoTo 0
NomDeObjet = Worksheets(compteurFeuille).Name
SupprimerResaDansBase
' effacement des resa jours précédents
If ColonneDuNom 1 And Worksheets(compteurFeuille).Cells(LigneDeDate - 1, 25).Interior.ColorIndex 35 Then
EffacementRésaJourAvant
End If
' Effacement de la résa du jour
EffacementResaDuJour
If compteurDeColonneDuJour = 25 Then
EffacementResaDesJoursAprès
End If
MsgBox "Suppression effectué pour M: " & ComboNom & " pour la date du : " & CDate(ComboDate) & " pour la salle : " & Sheets(compteurFeuille).Name
Unload Me
Exit Sub
Autre:
End If
Next
MsgBox " pas de réservation trouvée en date du : " & CDate(ComboDate) & " pour M : " & ComboNom & " ."
Unload Me
GestionDesErreurs:
If Err = 1004 Then
Err = 0
Resume Autre
End If
End Sub
Sub EffacementRésaJourAvant()
Dim compteurDeColonne As Byte
Dim LigneAAnalyser As Integer
With Sheets(compteurFeuille)
For LigneAAnalyser = LigneDeDate - 1 To 4 Step -1
compteurDeColonne = 25
Do Until compteurDeColonne = 1
If .Cells(LigneAAnalyser, compteurDeColonne).Interior.ColorIndex <> 35 Then
Exit Sub
End If
If .Cells(LigneAAnalyser, compteurDeColonne) <> "" Then
If .Cells(LigneAAnalyser, compteurDeColonne) <> ComboNom Then
Exit Sub
ElseIf .Cells(LigneAAnalyser, compteurDeColonne) = ComboNom Then
Range(.Cells(LigneAAnalyser, compteurDeColonne), .Cells(LigneAAnalyser, 25)).Clear
If compteurDeColonne > 2 Then
Exit Sub
End If
End If
End If
compteurDeColonne = compteurDeColonne - 1
Loop
Next
End With
End Sub
Sub EffacementResaDuJour()
With Sheets(compteurFeuille)
For compteurDeColonneDuJour = ColonneDuNom + 1 To 25
If .Cells(LigneDeDate, compteurDeColonneDuJour).Borders(xlEdgeRight).LineStyle = xlContinuous Then
Range(.Cells(LigneDeDate, ColonneDuNom + 1), .Cells(LigneDeDate, compteurDeColonneDuJour)).Clear
Exit Sub
End If
Next
End With
End Sub
Sub EffacementResaDesJoursAprès()
Dim compteurDeColonne As Byte
Dim LigneAAnalyser As Integer
With Sheets(compteurFeuille)
For LigneAAnalyser = LigneDeDate + 1 To 368 Step 1
compteurDeColonne = 2
If .Cells(LigneAAnalyser, compteurDeColonne).Interior.ColorIndex <> 35 Then
Exit Sub
End If
If .Cells(LigneAAnalyser, compteurDeColonne) <> "" Then
If .Cells(LigneAAnalyser, compteurDeColonne) <> ComboNom Then
Exit Sub
ElseIf .Cells(LigneAAnalyser, compteurDeColonne) = ComboNom Then
Do Until compteurDeColonne = 26
If .Cells(LigneAAnalyser, compteurDeColonne).Borders(xlEdgeRight).LineStyle = xlContinuous Then
Range(.Cells(LigneAAnalyser, 2), .Cells(LigneAAnalyser, compteurDeColonne)).Clear
End If
compteurDeColonne = compteurDeColonne + 1
Loop
If compteurDeColonne < 25 Then
Exit Sub
End If
End If
End If
Next
End With
End Sub
Sub SupprimerResaDansBase()
Dim CompteurDeLigne As Long
With Sheets("Synthèse")
For CompteurDeLigne = .Range("A65536").End(xlUp).Row To 1 Step -1
If .Cells(CompteurDeLigne, 1) ComboNom And .Cells(CompteurDeLigne, 2) NomDeObjet And (CDate(ComboDate) >= .Cells(CompteurDeLigne, 3) And CDate(ComboDate) <= .Cells(CompteurDeLigne, 5)) Then
.Cells(CompteurDeLigne, 1).EntireRow.Delete
Exit Sub
End If
Next
End With
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 26 oct. 2011 à 10:50
Bonjour,
C'est la deuxième discussion que tu ouvres à ce sujet !
Tu n'as reçu aucune réponse à la première.
Et je n'allais pas du tout répondre à la présente, non plus (purement et simplement).
Mais il me semble assez juste de t'en donner la raison essentielle : ===>>
Ton titre (dans l'une comme dans l'autre de ces deux discussions) ! Il es TEL que toute aide/réponse qui serait donnée, ne servirait que TES seuls intérêts, puisque perdue (à cause du titre) pour tout autre forumeur utilisant le moteur de recherche, en quête d'une solution à un problème identique
Voilà !
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient