combobox et plage

T

toubib

Guest
Bonjour à tous,

j'ai un petit soucis sur deux combobox, voila mon problème:
mes deux combobox permettent de sélectionner la date de début et la date de fin et ce que j'aimerais c'est qu'en fonction des dates choisies il sélectionne la plage de données y correspondant.
je vous joins un fichier pour que ca soit plus explicite.

merci :)
[file name=exemple_20051019174223.zip size=34153]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20051019174223.zip[/file]

edit: argh le usf ne s'initialize plus malgré que j'ai réajusté les données pourtant le code a l'air bon :s
ps: l'usf se lance à partir de la feuille graph mais comme il marche pas... re :s

Message édité par: toubib, à: 19/10/2005 17:45
 

Pièces jointes

  • exemple_20051019174223.zip
    33.4 KB · Affichages: 11
B

bebere

Guest
bonsoir Toubib
une 1ère version
à bientôt [file name=exemple_20051019213315.zip size=37033]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20051019213315.zip[/file]
 

Pièces jointes

  • exemple_20051019213315.zip
    36.2 KB · Affichages: 15

Robert

XLDnaute Barbatruc
Bonsoir Toubib, Bebere, bonsoir le forum,

Bebere a été plus rapide mais comme j'ai bossé sur ton problème je t'envoie quand même ma proposition.
[file name=exemple2_20051019223943.zip size=26345]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple2_20051019223943.zip[/file]
 

Pièces jointes

  • exemple2_20051019223943.zip
    25.7 KB · Affichages: 18
T

toubib

Guest
bonjour bebere, robert, le forum,

merci beaucoup à tous les deux d'avoir regarder mon problème.
bebere ca marche par contre ca ne tient pas en compte des choix que l'on effectue dans la listbox et pour robert il buggue sur une ligne dans commandbutton1click, voici la ligne:

Code:
Application.Union(.Range(.Cells(LiD, 1), .Cells(Lif, 2)), .Range(.Cells(LiD, CoD), _
        .Cells(Lif, CoF))).Select

je vais regarder de mon côté si je ne peux pas essayer de voir ce qui bloque mais n'étant pas un cador en vba toute votre aide sera la bienvenue ainsi que celle des autres forumeurs :)
 
B

bebere

Guest
re
version complétée
à bientôt [file name=exemple_20051020112531.zip size=38071]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20051020112531.zip[/file]
 

Pièces jointes

  • exemple_20051020112531.zip
    37.2 KB · Affichages: 12
T

toubib

Guest
je viens de regarder et effectivement ca marche cependant cela ne tient compte que de la dernière valeur de la listbox selectionnée moralité de mon côté je cherchais et j'ai juste modifié la métohde de select mais je n'arrive pas à avoir la bonne syntaxe, ca donnerait ça:

Code:
Private Sub CommandButton1_Click()
Sheets('données').Activate
 For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
    j = j + 1
    Set G = j + 20 'problème ici, il me dit obejet requis en focalisant sur le +'
    Cells(G, Range(Coldate1 & 'g:' & Coldate2 & G)).Select 'et la je n arrive pas à bien placer les guillemets pour que le deuxième G soit pris compte

...
reste de la macro (copier-coller vers une direction)
...
End If
Next i

qu'en pensez vous?

Message édité par: toubib, à: 20/10/2005 11:37
 
T

toubib

Guest
bon je viens de régler mon soucis, MERCI BCP a tous les deux, voila ce que ca donne avec la macro complète:

Code:
Sheets('données').Activate

 For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
    j = j + 1
Application.Union(Sheets('données').Range('A' & j + 20 & ':B' & j + 20), Sheets('données').Range(Coldate1 & j + 20 & ':' & Coldate2 & j + 20)).Select
selection.Copy
Range('a' & j + 100).Select
ActiveSheet.Paste
End If

voila, encore merci à tous les deux et bonne journée à tous :)
 
T

toubib

Guest
bon du coup j'ai cherché et j'ai trouvé ce qui n'allait pas et j'ai même amélioré le copy-paste mais alors que tout marchait sur le fichier d'exemple quand je l'ai transposé sur le vrai fichier ca ne marchait plus, la seule qui différencie c'est la plage qui au lieu de commencer à 20 commence à 1000 donc à priori par trop de difficultés mais il semble qu'il n'arrive pas à définir le coldate, ca me soule un chouia la :s

voila le code de l'essai:
Code:
Sub Cherche()
Coldate1 = '': Coldate2 = ''
For Each Cel In Sheets('données').Range('C20:' & Sheets('données').Range('C20').End(xlToRight).Address)
If Cel = Date1 Then Coldate1 = Left$(Cel.Address(0, 0), (Cel.Column < 27) + 2)
If Cel = Date2 Then Coldate2 = Left$(Cel.Address(0, 0), (Cel.Column < 27) + 2)
If Coldate1 <> '' And Coldate2 <> '' Then Exit For
Next Cel
End Sub

Private Sub CommandButton1_Click()
Dim Ligne As Byte
Sheets('données').Activate

Range('a99').Select
ActiveCell.FormulaR1C1 = 'VL base 100'

Application.Union(Sheets('données').Range('A20:B20'), Sheets('données').Range(Coldate1 & 20 & ':' & Coldate2 & 20)).Select
selection.Copy
Range('a100').Select
ActiveSheet.Paste

For w = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(w) = True Then
    j = w + 2
Application.Union(Sheets('données').Range('A' & j + 19 & ':B' & j + 19), Sheets('données').Range(Coldate1 & j + 19 & ':' & Coldate2 & j + 19)).Select
selection.Copy
Range('A65536').End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste

End If
Next w
ca ca marche

maintenant le code du nouveau ou on passe juste de a20 en départ de la plage à a1000:

Code:
Sub Cherche()
Coldate1 = '': Coldate2 = ''
For Each Cel In Sheets('XXX').Range('C1000:' & Sheets('XXX').Range('c1000').End(xlToRight).Address)
If Cel = Date1 Then Coldate1 = Left$(Cel.Address(0, 0), (Cel.Column < 27) + 2)
If Cel = Date2 Then Coldate2 = Left$(Cel.Address(0, 0), (Cel.Column < 27) + 2)
If Coldate1 <> '' And Coldate2 <> '' Then Exit For
Next Cel
End Sub

Private Sub CommandButton1_Click()

Unload Me

Sheets('XXX').Activate

Range('a1999').Select
ActiveCell.FormulaR1C1 = 'VL base 100'

Application.Union(Sheets('XXX').Range('A1000:B1000'), Sheets('XXX').Range(Coldate1 & 1000 & ':' & Coldate2 & 1000)).Select
selection.Copy
Range('a2000').Select
ActiveSheet.Paste

For w = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(w) = True Then
    j = w + 2
Application.Union(Sheets('XXX').Range('A' & j + 999 & ':B' & j + 999), Sheets('XXX').Range(Coldate1 & j + 999 & ':' & Coldate2 & j + 999)).Select
selection.Copy
Range('A65536').End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste

End If
Next w
End Sub

et la ca marche plus :s
que faire?! help me please :)
 
B

bebere

Guest
bonsoir Toubib
ajouté un tri
copie la sélection ligne 100
à bientôt ;) [file name=exemple_20051020203029.zip size=41077]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20051020203029.zip[/file]
 

Pièces jointes

  • exemple_20051020203029.zip
    40.1 KB · Affichages: 19

Statistiques des forums

Discussions
300 890
Messages
1 988 173
Membres
210 095
dernier inscrit
k-loo