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

floChimerque

XLDnaute Nouveau
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 édition:

Grand Chaman Excel

XLDnaute Impliqué
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

  • floChimerque.xlsm
    16.7 KB · Affichages: 119

Papou-net

XLDnaute Barbatruc
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 ?
 

julberto

XLDnaute Occasionnel
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:

Grand Chaman Excel

XLDnaute Impliqué
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

  • projet excel_2.xls
    138.5 KB · Affichages: 160

floChimerque

XLDnaute Nouveau
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 +
 

Grand Chaman Excel

XLDnaute Impliqué
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

  • projet_excel_3.xls
    144 KB · Affichages: 166

Papou-net

XLDnaute Barbatruc
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.
 

Grand Chaman Excel

XLDnaute Impliqué
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

  • projet_excel_4.xls
    144 KB · Affichages: 156
  • projet_excel_4.xls
    144 KB · Affichages: 161
  • projet_excel_4.xls
    144 KB · Affichages: 162

Grand Chaman Excel

XLDnaute Impliqué
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.
 

Grand Chaman Excel

XLDnaute Impliqué
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

  • projet_excel_4.xls
    178 KB · Affichages: 236
  • projet_excel_4.xls
    178 KB · Affichages: 240
  • projet_excel_4.xls
    178 KB · Affichages: 240

Discussions similaires

Statistiques des forums

Discussions
312 270
Messages
2 086 678
Membres
103 370
dernier inscrit
pasval