Bonjour,
je developpe un petit programme de calcul et je suis bloqué:voici mon problème:
Je calcule l'inertie d'un profilé cellule (G22) et je veux chercher dans un tableau que j'ai déja la valeur la plus proche de ma valeur que je calcule et afficher la ligne du tableau ou se trouve cette valeur avec une couleur .
Exemple ;je calcule et je trouve 22 je cherche dans le tableau la valeur la plus proche de 22 je trouve 23 j'affiche la ligne ou il y a cette valeur avec le rouge par exemple.
Vous trouvez ci-joint un exemple.
Merci pour votre aide.
Bonjour,
Votre solution marche super bien par contre j'aimerais bien que ça m'affiche dans le tableau la valeur la plus proche mais surtout pas qu'elle soit inférieur de ma valeur calculée:
exemple:inertie calculé 18.2 j'ai dans le tableau j'ai 18.1 et 19 c'est vrai que 18.1 est plus proche mais elle est inférieur donc ca va pas du coup la solution affiché ca sera le profilé qui a 19 comme inertie.
J'espère que je suis claire.
Merci d'avance.
Bonjour,
Vous pensez que ça sera possible d'afficher l'image associé au profilé choisie dans mon tableau?j'ai mis toutes les images dans la deuxième feuille du classeur dans une seule colonne et classé selon le classement du tableau.
Je suis un peu perdu je ne sais pas de quel chemin je dois passer.
Est ce que vous aurez une idée pour que je puisse arriver!
Merci pour votre aide.
Voyez le fichier .xlsm joint et cette macro dans le code de la feuille "test" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cible As Range, sel As Range, s As Shape, mini#, c As Range, NomImage$
Set cible = [G22]
Application.ScreenUpdating = False
ActiveCell.Activate 'si un objet est sélectionné
Set sel = Selection 'mémorise
'---RAZ---
For Each s In Shapes
If s.TopLeftCell.Address = "$D$33" Then s.Delete
Next
'---recherche de la ligne du profilé et du nom de l'image---
mini = 1000000
For Each c In [F33:F57]
If c > cible And c - cible < mini Then mini = c - cible: NomImage = c.Offset(, -3)
Next
If NomImage = "" Then Exit Sub
[D33].Select
Feuil1.Shapes(NomImage).Copy
Paste
Selection.Top = ActiveCell.Top + 12
Selection.Left = ActiveCell.Left + 12
sel.Select 'sélection initiale
End Sub
L'image s'affiche quand on modifie ou valide une cellule quelconque.
Nota 1 : le 21ème profilé n'a pas d'image.
Nota 2 : votre MFC n'était pas correcte, je l'ai refaite.
Voyez le fichier .xlsm joint et cette macro dans le code de la feuille "test" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cible As Range, sel As Range, s As Shape, mini#, c As Range, NomImage$
Set cible = [G22]
Application.ScreenUpdating = False
ActiveCell.Activate 'si un objet est sélectionné
Set sel = Selection 'mémorise
'---RAZ---
For Each s In Shapes
If s.TopLeftCell.Address = "$D$33" Then s.Delete
Next
'---recherche de la ligne du profilé et du nom de l'image---
mini = 1000000
For Each c In [F33:F57]
If c > cible And c - cible < mini Then mini = c - cible: NomImage = c.Offset(, -3)
Next
If NomImage = "" Then Exit Sub
[D33].Select
Feuil1.Shapes(NomImage).Copy
Paste
Selection.Top = ActiveCell.Top + 12
Selection.Left = ActiveCell.Left + 12
sel.Select 'sélection initiale
End Sub
L'image s'affiche quand on modifie ou valide une cellule quelconque.
Nota 1 : le 21ème profilé n'a pas d'image.
Nota 2 : votre MFC n'était pas correcte, je l'ai refaite.