• Initiateur de la discussion Initiateur de la discussion Biroute
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Biroute

Guest
Bonjour,

Je vous explique le problème que je rencontre.

Je suis actuellement en train de travailler sur un projet pour la résa en hotellerie.

Ce que je cherche à faire parait simple sur papier mais sur Excel celà me parait beaucoup plus compliqué.

Pour celà je fais appel à vous tous.

Je cherche à faire une recherche des chiffres < 0 pour qu'ils apparaissent plus en <0 mais à 0.
Exemple si samedi j'ai -2 je dois rechercher de la dispo le samedi de la semaine prochaine.
Si mon samedi de la semaine prochaine =1 alors j'ai une place de dispo.
Donc mon samedi de base passe à -1 et le samedi qui était =1 passe à 0. Ensuite vu que mon samedi de base est tjs négatif alors là je pense qu'il faut utiliser la fonction loop pour trouver un autre samedi >0.

Pouvez vous me dire si celà est réalisable ?

Je vous remercie par avance.
 

Pièces jointes

Re : VBA Boucle / Loop

Je viens de regarder ce que tu as fait.

C'est exactement ce que je recherchais.

Je te remercie c'est top 🙂
 
Dernière modification par un modérateur:
Re : VBA Boucle / Loop

Bonjour,

Je vous sollicite de nouveau car j'ai deux nouveaux points concernant la macro que Dixit a créé pour moi.

Premièrement je veux garder les data et créé une nouvelle feuille avec les résultats de la macro tout en gardant le même format.

Ensuite comment je fais pour que cette macro fonctionne sur toutes les colonnes du fichier ?

Finalement comment faire pour que la recherche de dispo des hotels ne se fasse que sur les trois semaines suivantes (cad samedi 1 - samedi 22 / samedi 7 - samedi 28 ....)

Merci d'avance pour votre aide
 

Pièces jointes

Re : VBA Boucle / Loop

Bonjour,
j'ai un peu modifié la macro de Dixit que je salue au passage. Le premier samedi de l'hôtel B passait de -1 à 1. J'ai donc mis une barrière à zéro.

Code:
Sub Clem()
Dim lignedebut As Long, v As Long, h As Long, t As Long
Worksheets("Data").Copy after:=Worksheets("Data")
ActiveSheet.Name = "Résultats"
For h = 2 To Cells(1, 2 ^ 8).End(xlToLeft).Column
For v = 2 To Cells(2 ^ 16, 1).End(xlUp).Row
    If Cells(v, 1) = "" Then Exit For 'la cellule est vide donc sortie de boucle
    If Cells(v, h) < 0 Then 'la cellule est < 0
        For t = v + 7 To v + 28 Step 7
            If Cells(t, 1) = "" Then Exit For 'la cellule est vide donc sortie de boucle
            If Cells(t, h) > 0 Then  'la cellule est > 0
                Cells(v, h) = Cells(v, h) + 1
                If Cells(v, h) = 0 Then GoTo suivante
                Cells(t, h) = Cells(t, h) - 1
            End If
        Next t
    End If
suivante:
Next v
Next h
End Sub

A plus,
Gruick
 
Re : VBA Boucle / Loop

Les deux macros fonctionnent super.

Par contre mes résultats ne vont pas.

Je m'explique si le 1er samedi j'ai -2 / 2e j'ai 0/ 3e 0/4e 4

Mon résultat doit etre le suivant 0/0/0/2 hors j'obtiens -1/0/0/3

En gros je voudrais qu'il n'y ai plus de chiffre négatif si dans les trois semaines suivantes il y a des dispos sinon le chiffre négatif doit tjs exister.
 
Re : VBA Boucle / Loop

Re, bien vu Biroute (avec tête chercheuse, donc...)

Correction :
Code:
Sub Clem()
Dim lignedebut As Long, v As Long, h As Long, t As Long
Worksheets("Data").Copy after:=Worksheets("Data")
ActiveSheet.Name = "Résultats"
For h = 2 To Cells(1, 2 ^ 8).End(xlToLeft).Column
[B]suivante:[/B] 
For v = 2 To Cells(2 ^ 16, 1).End(xlUp).Row
    If Cells(v, 1) = "" Then Exit For 'la cellule est vide donc sortie de boucle
    If Cells(v, h) < 0 Then 'la cellule est < 0
        For t = v + 7 To v + 28 Step 7
            If Cells(t, 1) = "" Then Exit For 'la cellule est vide donc sortie de boucle
            Cells(t, h).Select
            If Cells(t, h) > 0 Then  'la cellule est > 0
                Cells(v, h) = Cells(v, h) + 1
                Cells(t, h) = Cells(t, h) - 1
               [B] If Cells(v, h) <= 0 Then GoTo suivante[/B] 
            End If
        Next t
    End If
Next v
Next h
End Sub
PS : Quand tu quitteras l'hôtel, n'oublies pas tes sacoches...

Gruick
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
209
Réponses
8
Affichages
695
Réponses
4
Affichages
306
Réponses
8
Affichages
831
Retour