Selection plage avec une box

Résolu
faroka -  
 faroka -
Bonjour,

Sous Xp , excel 2000.

je voudrais selectionner une plage de cellule et faire le somme sur 3 colonnes.

j'ai un tableau de 6 colonnes ( c,d,e,f,g,h) sur 54 lignes (7 à 61)
(les titres et étiquettes de colonnes se trouvant entre les lignes 1 et 6).

Dans la colonne c , je rentre des dates, et dans les colonnes f, g, h des sommes .
je voudrais donc , avec l'aide d'une box choisir deux dates différentes et faire la somme colonne f , colonne g et colonne h qui correspond à la sélection demandée par la box .

Dans l'attente , bonne journée à vous.
faroka

6 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Salut,
Est ce que ce fichier pourrait vous convenir???
Vous dites...
0
faroka
 
C'est un début . Par contre les sommes calculées en f g et h n'apparaissent seulement que dans trois cellules i2,i3 et i4 .Ce n'est pas une obligation d'apparaitre dans la box. De plus, j'ai un bug ligne :
With Sheets(1).colomns(3)
la methode Sheets de l'objet global a échoué erreur 1004

Merci à vous de m'aider
a +
Cordialement
faroka




Private Sub CommandButton2_Click()
Dim Datedeb As Date, Datefin As Date
Dim LignDeb As Integer, LignFin As Integer, Lign As Integer
Dim Somme As Double
If Label3.Caption = "" Then
MsgBox "Veuillez indiquer la date de départ"
Exit Sub
End If
If Label4.Caption = "" Then
MsgBox "Veuillez indiquer la date de fin"
Exit Sub
End If
Datedeb = CDate(Label3.Caption)
Datefin = CDate(Label4.Caption)
With Sheets(1).Columns(3)</ital> ' erreur 1004
0
faroka
 
Euh .....
Aprés avoir enregistrer je n'ai plus de bug

Désolé .................
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Pour faire apparaitre les sommes en I2, I3 et I4, il convient d'ajouter, dans les codes de CommandButton_click, en fin de code :
Pour I2 :
Private Sub CommandButton1_Click()
Dim Datedeb As Date, Datefin As Date
Bla bla bla bla
TextBox1.Value = Somme
Cells(2, 9).Value = Somme
End Sub

Pour I3 :
Private Sub CommandButton2_Click()
Dim Datedeb As Date, Datefin As Date
Bla bla bla bla
TextBox1.Value = Somme
Cells(3, 9).Value = Somme
End Sub

Pour I4 :
Private Sub CommandButton3_Click()
Dim Datedeb As Date, Datefin As Date
Bla bla bla bla
TextBox1.Value = Somme
Cells(4, 9).Value = Somme
End Sub


Sinon, plus de bugs???
0
faroka
 
Bonjour,
Plus de Bug...

Autre petit problème , si j'ai n dates identiques ( ex 01/01/2010)
les sommes ne s'effectuent pas , même si on retrouve n dates dans la box.

Par contre ,
si on sélectionne la première date (01/01/2010 ....n dates ... 02/01/2010)
les sommes sont bien prises en compte .

Serait il également possible de grisé la ligne se trouvant juste en dessous de la date de fin à chaque fois que l'on agit sur la box ( que l'on fait la caisse) ceci pour mettre un " témoin" sur la feuille de calcul.

Merci à vous , Bon WE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Salut,
Alors il faut tout repenser le code de l'USF...
On ne travaille plus en recherche de date, mais avec les lignes de ton tableau...
Voici tout le code :
Dim LignDeb As Integer, LignFin As Integer

Private Sub CommandButton1_Click()
Dim Lign As Integer
Dim Somme As Double
If Label3.Caption = "" Then
    MsgBox "Veuillez indiquer la date de départ"
    Exit Sub
End If
If Label4.Caption = "" Then
    MsgBox "Veuillez indiquer la date de fin"
    Exit Sub
End If

If LignDeb > LignFin Then
    For Lign = LignDeb To LignFin Step -1
        Somme = Somme + CDbl(Cells(Lign, 6).Value)
    Next Lign
Else
    For Lign = LignDeb To LignFin
        Somme = Somme + CDbl(Cells(Lign, 6).Value)
    Next Lign
End If
TextBox1.Value = Somme
Cells(2, 9).Value = Somme
Rows(LignFin + 1).Interior.ColorIndex = 15
End Sub

Private Sub CommandButton2_Click()
Dim Lign As Integer
Dim Somme As Double
If Label3.Caption = "" Then
    MsgBox "Veuillez indiquer la date de départ"
    Exit Sub
End If
If Label4.Caption = "" Then
    MsgBox "Veuillez indiquer la date de fin"
    Exit Sub
End If
If LignDeb > LignFin Then
    For Lign = LignDeb To LignFin Step -1
        Somme = Somme + CDbl(Cells(Lign, 7).Value)
    Next Lign
Else
    For Lign = LignDeb To LignFin
        Somme = Somme + CDbl(Cells(Lign, 7).Value)
    Next Lign
End If
TextBox1.Value = Somme
Cells(3, 9).Value = Somme
Rows(LignFin + 1).Interior.ColorIndex = 15
End Sub

Private Sub CommandButton3_Click()
Dim Lign As Integer
Dim Somme As Double
If Label3.Caption = "" Then
    MsgBox "Veuillez indiquer la date de départ"
    Exit Sub
End If
If Label4.Caption = "" Then
    MsgBox "Veuillez indiquer la date de fin"
    Exit Sub
End If

If LignDeb > LignFin Then
    For Lign = LignDeb To LignFin Step -1
        Somme = Somme + CDbl(Cells(Lign, 8).Value)
    Next Lign
Else
    For Lign = LignDeb To LignFin
        Somme = Somme + CDbl(Cells(Lign, 8).Value)
    Next Lign
End If
TextBox1.Value = Somme
Cells(4, 9).Value = Somme
Rows(LignFin + 1).Interior.ColorIndex = 15
End Sub

Private Sub Label1_Click()
Dim Lign As Integer
Dim cpt As Boolean
cpt = False
For Lign = 0 To ListBox1.ListCount
    If ListBox1.Selected(Lign) = True Then
        Label3.Caption = ListBox1.List(Lign)
        LignDeb = Lign + 7
        ListBox1.Selected(Lign) = False
        cpt = True
        Exit For
    End If
Next Lign
If cpt = False Then
    MsgBox "Sélectionnez une date au préalable. Merci."
End If
End Sub

Private Sub Label2_Click()
Dim Lign As Integer
Dim cpt As Boolean
cpt = False
For Lign = 0 To ListBox1.ListCount
    If ListBox1.Selected(Lign) = True Then
        Label4.Caption = ListBox1.List(Lign)
        LignFin = Lign + 7
        ListBox1.Selected(Lign) = False
        cpt = True
        Exit For
    End If
Next Lign
If cpt = False Then
    MsgBox "Sélectionnez une date au préalable. Merci."
End If
End Sub

Private Sub UserForm_Initialize()
Dim Lign As Integer, DernLig As Integer
Label3.Caption = ""
Label4.Caption = ""
TextBox1.Value = ""
DernLig = Range("C65536").End(xlUp).Row

For Lign = 7 To DernLig
    ListBox1.AddItem Cells(Lign, 3).Value
Next
End Sub


Tu dis...
0
faroka
 
Merci Pijaku
Votre macro fonctionne parfaitement
Problème résolu.

Cordialement et bonnes fêtes de fin d'année
0