separer un nombre

aurelien02

XLDnaute Nouveau
bonjour,

j'aimerais séparer un nombre en plusieurs lignes, c'est a dire :

j'aimerais que si je mette 3 en a1, il écrive 1 en b1 puis 1 en b2 et 1 en b3


c'est en fait pour améliorer le "logiciel de facturation de camping" que j'ai fait avec excel, il faudrait que je séparer les nuitées pour en ajouter seulement 1 par jour, mais si il reste 3 jours, il faut en ajouter 1 par jour pendant 3 jours

il faut peut etre faire ca en macro, je doute que les formules soit suffisantes pour ca

merci

aurelien
 

aurelien02

XLDnaute Nouveau
Re : separer un nombre

je voudrais que la décomposition de nuitées soit rangée dans le tableau que j'ai fais sur la feuille excel et que la première nuitée soit en face de la date du jour

exemple:

2 nuitées, décomposées en 1 au 14/06/2013 et 1 au 15/06/2013, et donc que ca marque 1 en face de 14/06/2013 et 1 en face de 15/06/2013

et si possible après, que quand je refasse l’opération avec des autres nuitées grâce au bouton, ca fasse la somme des nuitées deja présentes dans le tableau et des nouvelles, toujours en fonction de la date pour les classer dans le tableau.

merci
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : separer un nombre

Re,

J'ai finalement refait mon fichier avec cette nouvelle macro :

Code:
Sub Recap()
Dim T, c As Range, n As Long, i As Long
[Dates].Parent.Activate 'sécurité
On Error Resume Next 'si une date n'existe pas dans le récapitulatif
[Dates].Offset(, 1).ClearContents 'RAZ
T = [Dates].Offset(, 1) 'tableau, plus rapide
For Each c In Range("A3", Cells(Rows.Count, 1).End(xlUp))
  If IsDate(c) Then
    n = Int(Val(c(1, 2).Text))
    i = 0
    i = Application.Match(c, [Dates], 0)
    If n * i > 0 Then
      For i = i To i + n - 1
        T(i, 1) = T(i, 1) + 1
      Next
    End If
  End If
Next
[Dates].Offset(, 1) = T
End Sub
Elle se lance, comme vous le souhaitez, par le bouton.

A+
 

Pièces jointes

  • Nuités(1).xls
    55.5 KB · Affichages: 42
Dernière édition:

job75

XLDnaute Barbatruc
Re : separer un nombre

Bonjour aurelien02, le forum,

Une autre méthode utilisant 2 tableaux (un peu plus rapide) :

Code:
Sub Recap()
Dim tablo, T(), i&, n&, j&
[Dates].Parent.Activate 'sécurité
On Error Resume Next 'si une date n'existe pas dans le récapitulatif
tablo = Range("A3:B" & Cells(Rows.Count, 1).End(xlUp).Row)
ReDim T(1 To [Dates].Count, 1 To 1)
For i = 1 To UBound(tablo)
  If IsDate(tablo(i, 1)) Then
    n = 0: j = 0
    n = Int(Val(tablo(i, 2)))
    j = Application.Match(CDbl(tablo(i, 1)), [Dates], 0)
    If n * j > 0 Then
      For j = j To j + n - 1
        T(j, 1) = T(j, 1) + 1
      Next
    End If
  End If
Next
[Dates].Offset(, 1) = T
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Nuités(2).xls
    56 KB · Affichages: 23
Dernière édition:

aurelien02

XLDnaute Nouveau
Re : separer un nombre

voila, vous y etes, il ne me reste plus qu'a faire la somme, en fait j'aurai qu'une seule case de nuitée et le bouton, enregistrera les nuitée dans le tableau et effacera la case nuitée pour que je suis en saisir d'autres

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 487
Messages
2 088 833
Membres
103 971
dernier inscrit
abdazee