CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

filtre automatique en vba

Le-Spain
Le-Spain
Niveau 7
15 juillet 2004 à 13:18:46

Bonjour !

Je dois faire 1 petit programme sous excel.
Sachant que ds 1 colonne A on a des dates au format dd/mm/yyyy; ds la colonne B des heures au format hh:mm:ss; ds la colone C des données(nombres).

Le but est de créer 1 graphique correspondant un intervalle de temps entre 2 dates.

On a donc crée 1 userform afin de pouvoir sélectionner les dates ( genre: du " ..." au " ...")

Jusque là, pas de pb. Le pb vient lorsque l´on veut sélectionner des dates dont le jour est un nombre compris entre 1 et 12. car en effet, l´ordi prend ce jour comme 1 mois.

ex: si on veut le graphique du 4 mars 2004 au 5 mars 2004, on va entrer du " 04/03/2004" au " 05/03/2004" et l´ordi va l´interpréter comme du"03/04/2004" au " 03/05/2004".

Pourtant on a rajouter partout des formules lui disant d´écrire en " dd/mm/yyyy" ms apparement il ne comprend pas.
On a aussi essayé de tt basculer en " mm/dd/yyyy", ou en " yyyy/mm/dd", mais il ne comprend tjr pas.

Avec une petite astuce, le programme marche ( il suffit d´inverser le mois et le jour pour les dates concernées) mais c´est un peu trop artisanal...

voilà, dc merci d´avance à tt ceux qui pourront m´aider.

gollumkawder
gollumkawder
Niveau 10
15 juillet 2004 à 14:16:55

Dnob700 est demandé à l´accueil, je répete... :)

Le-Spain
Le-Spain
Niveau 7
15 juillet 2004 à 14:54:46

Je peux mettre le programme si ça aide au fait...

Le-Spain
Le-Spain
Niveau 7
15 juillet 2004 à 16:28:35

Voilà le petit programme...
au cas où cela vs aide...

´marche mais: pour les dates dont le jour est un nombre inférieur à 12
´il faut d´abord rentrer le mois puis le jour ds la boite de dialogue

Private Sub CommandButton1_Click()

´remplissage de la boite de dialogue

If UserForm1.TextBox1.Text = " " Then
MsgBox " Vous n´avez rien saisi," & Chr(10) & " Recommencez!"
Exit Sub

Else
Range("D1").Value = UserForm1.TextBox1.Text
ActiveCell.Offset(1, 0).Select
End If

If UserForm1.TextBox2.Text = " " Then
MsgBox " Vous n´avez rien saisi," & Chr(10) & " Recommencez!"
Exit Sub

Else
Range("E1").Value = UserForm1.TextBox2.Text
ActiveCell.Offset(1, 0).Select
End If

´ Tri

Columns("A:A").Select
Selection.NumberFormat = " yyyy/mm/dd"

Range("D1:E1").NumberFormat = " dd/mm/yyyy"

Range("A:C").AutoFilter Field:=1, Criteria1:=">=" & Range("D2").Value, Operator:=xlAnd, Criteria2:="<=" & Range("E2").Value
Sheets("Feuil1").AutoFilter.Range.Copy Sheets("Feuil2").Range("A1:C1")

Worksheets("Feuil2").Range("1:1").Delete shift:=xlShiftToLeft

Worksheets("Feuil2").Columns("A").Delete shift:=xlShiftToLeft

´Unload Me

´realisation du graphique
Sheets("Feuil2").Select
Columns("A:B").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range("A:B"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
. HasTitle = True
. ChartTitle.Characters.Text = " Variation du débit"
. Axes(xlCategory, xlPrimary).HasTitle = True
. Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = " Heures"
. Axes(xlValue, xlPrimary).HasTitle = True
. Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = " Débit"
End With
With ActiveChart.Axes(xlCategory)
. HasMajorGridlines = True
. HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
. HasMajorGridlines = True
. HasMinorGridlines = False
End With
ActiveChart.HasLegend = False

ActiveChart.Axes(xlCategory).MajorGridlines.Select

With ActiveChart.Axes(xlCategory)
. CrossesAt = 1
. TickLabelSpacing = 30
. TickMarkSpacing = 60
. AxisBetweenCategories = True
. ReversePlotOrder = False
End With
ActiveChart.Axes(xlCategory).Select
With Selection.Border
. Weight = xlHairline
. LineStyle = xlAutomatic
End With
With Selection
. MajorTickMark = xlOutside
. MinorTickMark = xlCross
. TickLabelPosition = xlNextToAxis
End With
With Selection.TickLabels
. Alignment = xlCenter
. Offset = 100
. Orientation = 45
End With

End Sub

Le-Spain
Le-Spain
Niveau 7
16 juillet 2004 à 10:36:28

Heu, finalement, pas besoin de vs casser la tête, on a finalement trouvé...mais merci qd même.

dnob700
dnob700
Niveau 10
21 juillet 2004 à 17:44:05

bah... le VBA c´est pas trop mon truc, enfin, je veux dire aue je ne connait pas trop les objet que fournis si gentiment excel ( ou word, ou n´importe qui d´autre) pour nous aider.

Bon, et puis, j´ais pris auelques vqcqnce ( d´ailleurs comme on le voit a mon clavier, j´y suis toujours, mais si vous voulez, vous pouvez me souhaiter bon anniversaire, je suis majeur depuis quelques jours!).

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment