Modification macro : changebytarget

Bonjour,

j'aimerais modifier le code VBA suivant

Option Explicit

Dim an&, mois$, fp As Worksheet
Dim i&, col&, ln&, hln&, s$, flag&

Sub Valider()

    an = Year(Range("C4"))
    Set fp = Sheets("Planning")
    mois = MonthName(Month(Range("C4")))
    s = Range("C5") 'définition de la salle
    Sheets("Planning").Range("E4") = mois

    col = Range("C4") - DateSerial("2023", "1", "1") + 6
    flag = 0
    For i = 6 To 115
        If fp.Cells(i, col) = "X" And fp.Range("D" & i) = s Then 'si la cellule (ligne, colonne) contient "x" et que ça correspond à la ligne correspondant à la salle S, alors
            flag = 1    'si c'est vrai
            Exit For    'on sort de la boucle
        End If
    Next i  'on passe à la ligne suivante

    If flag = 0 Then    'si c'est faux
        Range("D4") = 1 / 3
        'Range("F8:F" & 29) = "Libre"
        Range("H8:I" & 29).ClearContents
        Exit Sub
    End If

    If fp.Range("E" & i) <> "" Then
        hln = i
    Else
        hln = fp.Range("E" & i).End(xlUp).Row
    End If

    Range("D4") = fp.Range("E" & hln)
    For i = 8 To Range("G" & Rows.Count).End(xlUp).Row
        If Application.Round(Range("G" & i), 9) = Application.Round(Range("D4"), 9) Then
            Range("H" & i) = fp.Range("B2")
            Range("I" & i) = fp.Range("B7")
        End If

        'If Application.Round(Range("G" & i), 9) >= Application.Round(Range("D4"), 9) Then
            'Range("F" & i) = "Occupée"
        'Else
            'Range("F" & i) = "Libre"
        'End If
    Next i
End Sub

afin de :

Sur l'onglet 'disponibilité des salles' cellule $A$4, je renseigne la date souhaitée en formation jj/mm/aaaa.

En cliquant sur "valider", les informations correspondant à la date $A$4, à l'heure (indiquée pour chacune des salle à la deuxième colonne du tableau) et la salle indiquée en ligne 6).

La colonne "Occupée'"/"Libre" sera incrémentée d'une MFC avec fonction SI. Je ne souhaite pas qu'elle soit macronisée J’ai essayé de dégrossir le code avec des explications pour comprendre un peu mieux (me dire si déjà j'ai faux). Quelqu'un pourrait m'aider à comprendre le code ou à construire mon nouveau code ?

Pour exemple, je vous joins le tableau. L'ancienne macro fonctionne dans l'onglet "réservation", au cas où.

19reunion-2.xlsm (250.35 Ko)

Merci par avance !

Bonjour,

Avant de passer au multi salles , je reviens sur "réservation". Comme tu indiquais que l'ancienne macro fonctionne sur cet onglet, je l'ai utilisé et je ne comprends pas le résultat. Il affiche uniquement la 1ère demi heure de réservation occupée et pas les suivantes ni les autres plages occupées de la journée ...

J'ai rajouté un bouton "Valider modifié" à côté tu bouton existant comme cela tu peux voir la différence. Peux-tu me dire si c'est le résultat que tu souhaites sur une seule salle ?

Sinon je n'ai pas compris la demande ...

22reunion-2a.xlsm (216.64 Ko)

Bonsoir Cylfo !

Oui.. On m'a aidé à créé la macro mais il sur les salles 1 et 2 essentiellement il me semble, la macro dysfonctionnait. Erreur de code ou mauvaise manip bonne question... Je suis pas assez expérimentée en macro pour te dire...

Toutefois tu as tout à fait compris l'objet de ma demande ! C'est exactement la macro valider modifié qui fonctionne et qu'il me fallait... !

Dans la deuxième étape de mon outil, j'aimerais modifier la macro pour avoir un visu (deuxième outil) sur toute les salles juste en indiquant un jour.

Je ne souhaite pas que mes tableaux changent si quelqu'un modifie l'heure sur la feuille.

Merci 1000 fois ! Et une excellente soirée à toi !

Peux-tu préciser ce que tu veux dire par "Je ne souhaite pas que mes tableaux changent si quelqu'un modifie l'heure sur la feuille." ?

Si tu fais référence à la feuille "Disponibilité des salles", il n'y a plus d'heure d'indiquée (comme en "D4" sur la feuille [Réservation]) donc j'imagine que c'est pour avoir une visu complète des salles et voir celles qui sont disponibles pour le créneau horaire de réservation. C'est cela ?

Oui c'est exactement ça, je voulais le préciser quand même pour pas que vous m'aidiez en prenant en compte l'heure...

Si j'ajoute, séparément de la macro, une cellule horaire, ce sera juste pour faire une mise en forme conditionnelle, à la limite pour que l'heure en question se mettent en surbrillance dans les tableaux de disponibilité des salles.
Mais ça, ce sera en plus et je sais pas encore si mon idée va évoluer.

Une bonne journée à toi

Rechercher des sujets similaires à "modification macro changebytarget"