j'ai récupéré un fichier qui pourrait m'aider, mais je n'arrive pas à mettre en place les codes .
Il contient des codes que j'ai réussi à modifier, mais je n'arrive pas à adapter les deux codes suivants: " Actualiser_Planning_Reservations" et le code " SupprPlanningReservations ".
Je pense que dans ces deux codes il y a des instructions manquantes !
Pour vous donner une explication du fonctionnement du fichier;
En appelant le UserForm " DEMANDE_RESERVATIONS " (en cliquant sur le bouton " Saisir une réservation") , je veux pouvoir saisir le nom de client, le nombre de jours dans le textbox5 et suite à la saisie de ce nombre de jour dans ce textbox et la saisie de la date d'arrivée choisie, il me renseignera la date de départ.
Une fois que cela fonctionne, il faudrait également pouvoir modifier des lignes si nécessaire en cliquant sur le client voulu dans la listbox1 et une fois les infos modifiées je pourrai cliquer sur le bouton modifier.
Pour l'instant je vous laisse regarder et si besoin vous me dites si quelque chose est mal expliqué s'il vous plaît.
@Marvin57 : Code à copier dans un module standard. Ensuite l'appeler à partir de l'évènement Activate de la feuille PLANNING RESERVATIONS. Clic-droit sur l'onglet, visualiser le code et tu colles les lignes ci-dessous
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Actualiser_Planning
End Sub
Dans module standard ci-dessous
Code:
Sub Actualiser_Planning() 'valider
'/!\ Attention! Il faut supprimer la 1ère colonne Nom, la ligne des dates doit débuter en A5
Dim RngDate As Range, rng As Range, col1 As Integer, col2 As Integer, LigFeuil As Integer
Dim colfeuil As Integer, i As Integer, x As Byte, couleur As Byte, lig As Long
Dim plage As Range, DateDebut As Long, derlig1 As Long, derlig2 As Long...
Est-ce que l'absence de précision dans ta réponse veut dire qu'une éventuelle nouvelle proposition de ma part ne t'intéresse pas ?
C'est ce que ma dernière proposition fait chez moi, à ceci près que dans ma proposition il y a un "saut de ligne" (dans la cellule) entre le nom et l'annotation.
Arf ! Ça voudrait dire que tu n'es qu'un humain ?!?
Quelle déception d'apprendre ça !
Plus sérieusement : ne pas tenir compte de mon message #44, je suis sur mon tél donc je réponds au fur et à mesure que je lis les réponses du fil de discussion...
Pas de soucis, c'était de ma faute, si j'avais fais attention on n'en serait pas la.
Je te place en pièce jointe le fichier avec le Userform Comme il devrait être. J'ai supprimé des combobox et boutons de calendrier etc.
Comme je le disais tout à l'heure, ta proposition fonctionne pour la saisie de réservations.
Par contre, si je clique par exemple sur une réservation dans la listbox pour la modifier, il me la modifie bien dans le tableau LISTING RESERVATIONS mais pas dans le tableau PLANNING RESERVATIONS.
Par contre, si je clique par exemple sur une réservation dans la listbox pour la modifier, il me la modifie bien dans le tableau LISTING RESERVATIONS mais pas dans le tableau PLANNING RESERVATIONS.
Du coup il n'y a peut-être pas de recherche à faire dans le tableau à modifier, si la ListBox contient le même nombre de lignes, et dans le même ordre, que ledit tableau.
Du coup il n'y a peut-être pas de recherche à faire dans le tableau à modifier, si la ListBox contient le même nombre de lignes, et dans le même ordre, que ledit tableau.
Admettons:
- au lieu de 3 jours de réservations il ne veut que 2 jours.
- le nom du client change pour cette réservation.
- les dates changent.
Il me fait tout cela très bien dans le Tableau de l'onglet LISTING RESERVATIONS mais ne modifie pas dans le tableau de l'onglet PLANNING RESERVATIONS.
J'ai également le soucis quand par exemple je selectionne une réservation dans la listbox pour la supprimer complètement. Il me la supprime bien dans le Tableau de l'onglet LISTING RESERVATIONS mais pas dans le tableau de l'onglet PLANNING RESERVATIONS.
C'est à dire si un client par exemple nommé Henri fait une réservation du 15/02/2024 au 16/02/2024 avec une note comme par exemple Réunion, il devrait m'inscrire " Henri Réunion " dans les dates 10, 11, 12, 13, 14, 15 et 16 février.
Cependant, il faut faire débuter les dates en A5, c-à-d supprimer la colonne Nom.
Copie et colle cette procédure en remplacement de l'existante dans le formulaire.
Partie modifier non traitée.
VB:
Private Sub Actualiser_Planning_Reservations() 'valider
'/!\ Attention! Il faut supprimer la 1ère colonne Nom, la ligne des dates doit débuter en A5
Dim RngDate As Range, rng As Range, col As Integer, lig As Integer, cel As Range
Application.ScreenUpdating = False
With Sheets("planning reservations")
Set RngDate = .Range("$A$5:$AN$5")
lig = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
col = Application.Match(CLng(CDate(TextBox2)), RngDate, 0)
Set cel = .Cells(lig, col)
cel.Resize(1, Val(TextBox5)) = TextBox6 & " " & TextBox4
End With
Application.ScreenUpdating = True
Sheets("PLANNING RESERVATIONS").Activate
Unload Me
End Sub
Résultat obtenu ci-dessous (réservation de 5 jours)
Concernant la modification, j'ai vu ça : "Attention la sélection de la listbox sans activation du bouton MODIFIER a supprimé son enregistrement de l'onglet PLANNING RESERVATIONS".
Concernant la modification, j'ai vu ça : "Attention la sélection de la listbox sans activation du bouton MODIFIER a supprimé son enregistrement de l'onglet PLANNING RESERVATIONS".
@Marvin57 : Si tu tiens à continuer uniquement avec @TooFatBoy . Merci de le dire. Ce qui me permettra d'aider une autre personne. Car je n'ai pas eu de retour à ma proposition du post#51, répondant à ton post#36 où tu nous expliquais ci-dessous
C'est à dire si un client par exemple nommé Henri fait une réservation du 15/02/2024 au 16/02/2024 avec une note comme par exemple Réunion, il devrait m'inscrire " Henri Réunion " dans les dates 10, 11, 12, 13, 14, 15 et 16 février.
Bien sûr je ne saurais répondre à la place de Marvin, mais je crois qu'il a dit que pour cette partie il prenait ma proposition de #23.
Ceci dit, s'il préfère ta proposition de #51, pas de souci. C'est lui qui voit : on propose, il dispose.
Cependant, il faut faire débuter les dates en A5, c-à-d supprimer la colonne Nom.
Copie et colle cette procédure en remplacement de l'existante dans le formulaire.
Partie modifier non traitée.
VB:
Private Sub Actualiser_Planning_Reservations() 'valider
'/!\ Attention! Il faut supprimer la 1ère colonne Nom, la ligne des dates doit débuter en A5
Dim RngDate As Range, rng As Range, col As Integer, lig As Integer, cel As Range
Application.ScreenUpdating = False
With Sheets("planning reservations")
Set RngDate = .Range("$A$5:$AN$5")
lig = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
col = Application.Match(CLng(CDate(TextBox2)), RngDate, 0)
Set cel = .Cells(lig, col)
cel.Resize(1, Val(TextBox5)) = TextBox6 & " " & TextBox4
End With
Application.ScreenUpdating = True
Sheets("PLANNING RESERVATIONS").Activate
Unload Me
End Sub
Bonjour cp4
Désolé du retard. J'ai essayé avec ta proposition mais si j'enlève la colonne noms il m'inscrit quand même le nom en colonne à.
Faudrait voir d'où cela vient.
Merci à toi
Bien sûr je ne saurais répondre à la place de Marvin, mais je crois qu'il a dit que pour cette partie il prenait ma proposition de #23.
Ceci dit, s'il préfère ta proposition de #51, pas de souci. C'est lui qui voit : on propose, il dispose.
Ce ne sera vraisemblablement pas le cas, car ce matin je lui ai expliqué en MP que son projet me dépassait complètement.
Bien sûr je ne saurais répondre à la place de Marvin, mais je crois qu'il a dit que pour cette partie il prenait ma proposition de #23.
Ceci dit, s'il préfère ta proposition de #51, pas de souci. C'est lui qui voit : on propose, il dispose.
Ce ne sera vraisemblablement pas le cas, car ce matin je lui ai expliqué en MP que son projet me dépassait complètement.
Merci de m'avoir répondu. En fait, il est comme moi à mes débuts. Il croit dur comme fer que la solution à son problème doit se faire selon sa conception.
Son projet est un foireux car déjà, on peut faire un enregistrement antérieur à la date du jour.
Moi aussi, je me retire.
Pour dégrossir les lignes directrices du projet, sans polluer ce fil de discussion, j'ai discuté avec notre camarade Marvin en MP, et il s'avère qu'en réalité il est totalement ouvert à toute proposition de modification.
Mais le projet est beaucoup trop complexe pour moi : gestion des dates comme tu le dis (moi j'avais pensé à une résa le 30 décembre pour 35 jours...), gestion des chevauchements de réservations, peut-on réserver plusieurs choses (ce qui du coup compliquerait encore plus la gestions des chevauchement), etc.