VBA gérer un camping : problème de date et chiffre aléatoire.

  • Initiateur de la discussion Initiateur de la discussion floChimerque
  • 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 !

F

floChimerque

Guest
Bonjour tout le monde, je suis toute nouvelle sur le site, après des semaines et des semaines de cheveux arrachés a cause de problèmes mineurs sur VBA. Ils empêchent mon programme de fonctionner.
 
Dernière modification par un modérateur:
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque,

Je ne suis pas certain de comprendre ta première question et la façon dont tu génères tes nombres aléatoires pour tes clients. Probablement que si tu avais un fichier exemple avec quelques données ça serait plus simple. Si tu veux générer une liste pour 13 clients seulement, tu n'as qu'à remplacer le 1er argument de ta fonction, soit :

Code:
GenereSerieAleatoireSansDoublons 25, Range("B4")

par

Code:
GenereSerieAleatoireSansDoublons 13, Range("B4")

Pour ta 2e question, voir le fichier joint, 2e onglet, j'ai créé une fonction personnalisée en VBA. Il y a sûrement d'autres façons de faire, peut-être même sans VBA, mais c'est ce qui était le plus rapide à faire pour moi.
 

Pièces jointes

Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonsoir floChimerque,

Pas tout compris de ta demande, un fichier exemple en pièce jointe eût été très utile.

Si je puis me permettre, tu peux déjà simplifier le code de ta procédure "Prestations" :

Code:
Sub Prestations()
For n = 2 To 17
  GenereSerieAleatoireSansDoublons 25, Cells(4, n)
Next
End Sub

Par ailleurs :

Le premier, j'aimerais générer une série de chiffre aléatoire pour chaque nouveau client, mais actuellement mon code me rentre jusqu'au 25ième client alors que je n'en ai rentré que 13 clients

C'est normal, tu indiques 25 en paramètre "NbValeurs", le code se répète donc 25 fois.

Et :

Et mon deuxième problème est l'identification de période, combien y a t-il de jour en basse, moyenne ou haute saison

Alors là, je ne sais que répondre, des explications supplémentaires (ou mieux encore, une pièce jointe) seraient souhaitables.

A te lire.

Cordialement.

Edit : bonsoir Grand Chaman, on en est au même point je vois ?
 
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque,

Si j'ai bien compris remplace 25 par 13

Autre question :
période du15 avril au 8 juillet 15-avr 08-juil 85 jours

période du 8 juillet au 19 aout 08-juil 19-août 43 jours

période du 20 aout au 15 octobre 20-août 15-oct 57 jours

Il suffit de faire la différence de ces dates+1 si la date de début et de fin doivent être comptabilisées.

cordialement
 
Dernière édition:
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque, bonjour le Forum,

Ce n'est pas encore clair pour moi ce que tu veux exactement. Ton code aléatoire, est-ce que c'est pour remplacer le code de la colonne A dans l'onglet "Fichier" ??? Peut-être que si tu ajoutais quelques commentaires ici et là avec des exemples de données de ce que tu voudrais avoir exactement ça nous éclairerait un peu plus.

À tout le moins, j'ai ajouté la fonction avec le calculs de jours par période dans ton onglet "Facture".

A+
 

Pièces jointes

Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Grand Chaman, je m'agenouille à vos pied, j'ferai la danse de la pluie pour vous !

Comment expliquer ce que j'aimerai clairement, ma priorité est de faire fonctionner la facture, en fait.
Pour mon code aléatoire, c'est qu'à chaque nouveau client, le tableau Loisir et Prestation se remplisse de chiffre aléatoire. Là actuellement, je n'ai que 13 ( ou 14) clients et mon code a rempli le tableau pour 25 clients.

Hum... Je ne suis pas très claire !

A +
 
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Non non! Pas la danse de la pluie... La danse du soleil pour faire fondre toute la neige qu'l y a ici... 🙂

Je pense un peu mieux comprendre.
J'ai créé un nom (dans le gestionnaire de noms CTRL + F3), appelé NbClients qui compte le nombre de clients indiqués dans l'onglet Fichiers (en fait compte le nombre de cellules non vides entre A2:A8000.

J'ai modifié tes macros Loisirs() et Prestations() en tenant compte de la suggestion de Papou-net et pour tenir compte de NbClients comme paramètres au lieu de 25. Ainsi chaque fois que tu vas rouler ces macros, le nombre de lignes générées sera égal au nombre de clients.

Note: je ne comprends toujours pas le lien entre la facture et les nombres aléatoires mais bon...

A+
 

Pièces jointes

Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque, Grand Chaman,

@ floChimerque,

En modifiant ton code comme suit, tu adaptes le nombre de lignes à ton nombres de clients :

Code:
Sub Prestations()
Dim NbValeurs As Integer

NbValeurs = Sheets("FICHIER").Range("A65536").End(xlUp).Row - 1
For n = 2 To 17
  GenereSerieAleatoireSansDoublons NbValeurs, Cells(4, n)
Next
End Sub

Sub GenereSerieAleatoireSansDoublons(NbValeurs As Integer, Cell As Range)
  Dim Tableau() As Integer, TabNumLignes() As Integer
  Dim i As Integer, k As Integer
  ReDim Tableau(NbValeurs)
  ReDim TabNumLignes(NbValeurs)
    
For i = 1 To NbValeurs
  TabNumLignes(i) = i
  Tableau(i) = i
Next
    
'Initialise le générateur de nombres aléatoires
Randomize

For i = NbValeurs To 1 Step -1
  k = Int((i * Rnd) + 1)
  Cells(Cell.Row + i - 1, Cell.Column) = Tableau(TabNumLignes(k))
  TabNumLignes(k) = TabNumLignes(i)
Next

End Sub

@ Grand Chaman,

Tu m'as grillé sur cette réponse, mais comme je l'ai fait, je le transmets. Par contre, je te rejoins dans ta réflexion sur les nombres aléatoires dans cette application, mais visiblement, nous n'avons pas tout compris. Ce serait bien que floChimerque nous précise davantage sa pensée.

Cordialement.
 
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour FloChimerque,
Si tu préfères, voici une solution sans formule personnalisée pour calculer le nombre de jours par période.
 

Pièces jointes

Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque,

Ok, je viens de comprendre... Si tu fais référence à ta macro "Facturation()" et bien en partant il y a le problème que tu appelles ta feuille avec Worksheets("facture ") au lieu de Worksheets("facture"). Ça donne une erreur à cause de l'espace à la fin de "facture ".

J'ai corrigé ça mais ça ne fonctionne pas encore. Je vais devoir regarder et analyser ta macro pour mieux la comprendre.

Au plaisir.
 
Re : VBA gérer un camping : problème de date et chiffre aléatoire.

Bonjour floChimerque,
J'ai pris un peu de temps pour regarder le code fait pour la facturation... Personnellement, je trouve cela beaucoup trop compliqué pour rien. Tu pourrais faire la même chose dans ce cas-ci avec presque pas de VBA et seulement des formules. J'ai commenté le code "facturation2()" et à vrai dire j'ai presque tout enlevé.

Je me suis permis d'adapter ton fichier. Avec la formule RECHERCHEV, on peut faire beaucoup!

En espérant que ça aidera un peu...
 

Pièces jointes

- 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
6
Affichages
642
Retour