Appel au valeurs Max et Min

Bonjour à tous,

Sachant que je suis nul en VBA, j'ai un fichier excel (données de sortie d'un logiciel de calcul génie civil) qui contient des nombres et des noms de feuille variable, le nombre de ligne est variable aussi, dans toute les feuilles le nom des colonnes est toujours organisé de cette façon:

"Niveau; Déformée; Moment; Eff. Tranch.; Charge Rep.; Press. sol 1; Press. sol 2"

A part le Niveau, les valeurs des autre colonnes sont ne sont pas les mêmes dans chaque feuille alors ce que je veux faire c'est de créer une macro qui dans une nouvelle feuille fait appels aux valeurs min et max de chaque cellule de cette façon

"Niveau (= le même) ; Moment min; Moment max; Eff. Tranch min; Eff. Tranch max; Déformée max"

Je vous laisse un exemple en PJ, la dernière feuille nommé "Feuil1" est le type de résultat que je voudrais avoir.

Sa a l'air compliqué, je vous remercie d'avance.

Sofiane.B

12testrido.xlsx (68.43 Ko)
Sofiane.B a écrit :

Sachant que je suis nul en VBA,

dans ce cas ne fais pas de VBA !

d'ailleurs ton problème est résolu par des formules ou je trompe ?

bonjor

Steelson a raison

as-un une idée du nombre de feuilles que tu peux atteindre ? 10 ou 100 ?

et du nombre de lignes dans chaque feuille ? 1000 ou 10000 ?

bonjour,

Voici une solution quel que soit le nombre de lignes ou de feuilles :

Sub galopin()
Dim FS$, LS$, i%
FS = Worksheets(1).Name
LS = Worksheets(Worksheets.Count - 1).Name
i = Worksheets(FS).[A1].CurrentRegion.Rows.Count
With Worksheets("Feuil1")
.Range("A3").Formula = "='" & FS & "'!A3"
.Range("B3").Formula = "=MIN('" & FS & ":" & LS & "'!C3)"
.Range("C3").Formula = "=MAX('" & FS & ":" & LS & "'!C3)"
.Range("D3").Formula = "=MIN('" & FS & ":" & LS & "'!D3)"
.Range("E3").Formula = "=MAX('" & FS & ":" & LS & "'!D3)"
.Range("F3").Formula = "=MAX('" & FS & ":" & LS & "'!B3)"
.Range("A3:F3").AutoFill Destination:=Range("A3:F" & i), Type:=xlFillDefault
End With
End Sub

Bon c'est vraiment pour te faire plaisir : Tant qu'à utiliser VBA, YAPA besoin de formules : VBA est bien capable de faire les calculs tout seul et d'afficher le résultat sans formules compliquées !

la seule chose importante est que "Feuil1" reste toujours la dernière et ne soit pas renommée.

A+

joli !

je ne pensais pas que ceci fonctionnait !

FS & ":" & LS

on doit donc pouvoir l'écrire en direct (si on connait la première feuille et l'avant-dernière) !

Non, ceci était un exemple de résultat que je voudrais avoir, mais que je l'ai dis: dans chaque fichier j'ai un nombre et nom de feuilles et de lignes variable !

"la seule chose importante est que "Feuil1" reste toujours la dernière et ne soit pas renommée"

Parfait, Merci beaucoup

Est-ce qu'il y a moyen de rattacher cette macro a tout mes fichiers Excel ?

Oui, tu colles cette macro dans un classeur vide (dans un module Standart (Module1))

A partir du menu VBA tu fais Enregistrer

Tu vas avoir la boite de dialogue Enregistrer sous qui va s'ouvrir...

Tout en bas de cette boite de dialogue tu as un champ "Type" :

Choisir (vers le bas de la liste) "macro complémentaire Excel (*.xlam)"

...puis dans le champ au dessus "Nom du fichier" tu remplace ce qui est proposé par Perso.xlam

Puis valider pour enregistrer.

Fermer Excel

Rouvrir Excel

Dans l'onglet Développeur cliquer sur Complément

Cocher Perso et valider

La macro est désormais disponible pour tous les classeur.

Elle n'est visible nulle part, mais tu peux l'appeler à tout moment soit par l'intermédiaire d'une personnalisation du ruban ou de la barre d'accès rapide. Dans ce dernier cas elle est visible dans la liste de personnalisation (Catégories macro)

On peut aussi l'invoquer par macro... "Call galopin"

A+

galopin
galopin01 a écrit :

la seule chose importante est que "Feuil1" reste toujours la dernière et ne soit pas renommée.

A+

Dans ce cas, autant la créer par la macro ! on sera sûr qu'elle est la dernière.

Steelson a écrit :
galopin01 a écrit :

Dans ce cas, autant la créer par la macro ! on sera sûr qu'elle est la dernière.

Comment faire si on la crée par la macro ? et qu'en cas ou la nouvelle feuille se nomme "Feuil2 ou 3"

Il n'existe aucune macro qui puisse faire tout ce qui te passe par la tête.

A toi d'adopter cette règle et de t'y tenir, parce que des variantes possibles il y en a à l'infini... tu peux aussi avoir envie de renommer ta feuille de synthèse, mettre des feuilles qui ne rentrent pas dans le jeu.

Alors le plus simple c'est de ne pas faire de fantaisie...

Si toutefois tu dois modifier la macro ou en rajouter une autre que tu veux mettre dans ton perso.xlam

Il suffit d'aller dans ton VBA Project : Là tu vois ton perso.xlam.

En cliquant dessus en dépliant le Module1, tu vois ta macro, tu peux aussi la modifier ou en rajouter.

Dans ce cas, rappelle toi bien :

Si tu décides de modifier ton perso.xlam tu dois absolument sauvegarder ton perso.xlam DANS VBA pendant qu'il est actif.

Sinon tes modifications seront perdues : Si tu passes sur un autre projet et que tu quittes Excel en oubliant de revenir sur ton perso.xlam, aucun message ne te demandera si tu désires sauvegarder les modifications :

Le programmeur est censé savoir ce qu'il a à faire... VBA ne te demanderas pas si t'es un bleu !

A+

Sofiane.B a écrit :
Steelson a écrit :
galopin01 a écrit :

Dans ce cas, autant la créer par la macro ! on sera sûr qu'elle est la dernière.

Comment faire si on la crée par la macro ? et qu'en cas ou la nouvelle feuille se nomme "Feuil2 ou 3"

on lui donne un nom lors de sa création, par ex. : "synthese"

Rechercher des sujets similaires à "appel valeurs max min"