Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro pour la plus grande valeur dans une feuille excel

Loc3007

XLDnaute Nouveau
Bonjour,

Je suis nouveau, est mes connaissances en VBA sont réduites, j'ai adapté un code à mes besoins sur le tri de x classeur sur une feuille.
Mon souci, je n'arrive pas a avoir la plus grande valeur de la feuille (Débit Horaire (C)) dans la plage L10 à BS33, de plus j'aimerai une fois que la valeur est trouvé avoir la plage horaire qui correspond de la ligne 9 dans une colonne du tableau initial(recap).

Je vous remercie pour vos réponse.
 

Pièces jointes

  • recap_DELAM.xls
    42 KB · Affichages: 26
  • a1.xls
    858 KB · Affichages: 22
  • a3.xls
    858 KB · Affichages: 26
Dernière édition:

vgendron

XLDnaute Barbatruc
Hello
Essaie avec ce code
VB:
Sub consolide()

ChDir ActiveWorkbook.Path
Set recap_DELAM = ActiveWorkbook

Application.ScreenUpdating = False
compteur = 3

nf = Dir("*.xls")
Do While nf <> ""
    If nf <> recap_DELAM.Name Then
        Workbooks.Open Filename:=nf
        Set WBOpened = ActiveWorkbook
        With WBOpened
            With .Sheets("Synthèse")
                recap_DELAM.Sheets(1).Cells(compteur, 1) = .Range("CS4").Value
                recap_DELAM.Sheets(1).Cells(compteur, 2) = .Range("Q12").Value
                recap_DELAM.Sheets(1).Cells(compteur, 3) = .Range("CY4").Value
                recap_DELAM.Sheets(1).Cells(compteur, 4) = .Range("CI40").Value
                recap_DELAM.Sheets(1).Cells(compteur, 5) = .Range("CY40").Value
                recap_DELAM.Sheets(1).Cells(compteur, 6) = .Range("AA40").Value
                recap_DELAM.Sheets(1).Cells(compteur, 7) = .Range("BE40").Value
                recap_DELAM.Sheets(1).Cells(compteur, 8) = .Range("CI55").Value
                recap_DELAM.Sheets(1).Cells(compteur, 7) = .Range("CM1").Value
                recap_DELAM.Sheets(1).Cells(compteur, 10) = .Range("CM2").Value
            End With
            With .Sheets("Débit Horaire (C)")
                .Activate
                recap_DELAM.Sheets(1).Cells(compteur, 13) = Application.WorksheetFunction.Max(Range("L10:$BS33"))
            End With
        End With
        compteur = compteur + 1
        Workbooks(nf).Close False
    End If
    nf = Dir
Loop
Application.ScreenUpdating = True
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Loc3007 et bienvenue sur XLD

Dans le fichier A1 la plage fini à BY37 et non BS. Et je ne vois pas l'intérêt de sauter autant de colonnes pour en avoir que 15 au final dans le fichier A3 ??. Comme je ne veux pas y mettre les mains dedans, voici un exemple pour trouver la valeur MAX.

VB:
Sub MaxVal()
Dim plage As Range, ValMax As Long
    With Sheets("Feuil1")
        Set plage = .Range("L10:BY" & .Range("BY" & .Rows.Count).End(xlUp).Row)
    End With
    ValMax = WorksheetFunction.Max(Plage)
    MsgBox "la valeur max est " & ValMax
End Sub

EDIT: bonjour vgendron
 

Loc3007

XLDnaute Nouveau
Bonjour,

Merci pour vos réponse, avec l'exemple de vgendron, le fichier marche.
Par contre j'ai voulu sur les lignes de code ci-dessus chercher la plus grande valeur entre 13h et 00h et la cela ne marche plus.
Aussi quand il affiche la donnée du fichier A1 la plus grande valeurs est = 941 dans le fichier Recap, j'aimerai qu'il me donne le créneau horaire de la colonne supérieur 8h-9h (BT10) dans la ligne 3 colonnes 12 du fichier Recap.

Je vous remercie pour vos réponse rapide et pertinente.

Cordialement
 

Pièces jointes

  • recap_DELAM.xls
    40 KB · Affichages: 19

Loc3007

XLDnaute Nouveau

Bonjour,

Je fini par By37 car j'ai besoin que du débit et non des pourcentage comme dans BS.
J'ai besoin de savoir le plus de trafic du matin (00h à 12h) et le trafic le plus important de (13h à 24h).
Après que j'ai mon nombre je dois dire à quelle plage horaire que cela correspond.

Je vous remercie pour vos réponses.

Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…