[ Résolu ] Extraire certaine valeurs dans une plage bien définie

Guido

XLDnaute Accro
Bonsoir le Forum

Je reviens vers Vous pour des nouvelles demandes. Des demandes que j'avait fais il y a environ

une bonne année.

J'aimerais par formules ou en vba extraire les deux premières valeurs inferieurs a 10.1.

ainsi que les deux première valeurs supérieurs a 10.1

et les deux premières valeurs supérieurs a 3.5

pour les faire afficher dans la plage prévu,

Voir capture d'écran.

Merci d'avance

Guido
 

Pièces jointes

  • Capture d'une reunion R1.PNG
    Capture d'une reunion R1.PNG
    92.2 KB · Affichages: 48
  • Capture d'une reunion BIS.PNG
    Capture d'une reunion BIS.PNG
    123.5 KB · Affichages: 39

JBL8

XLDnaute Nouveau
Bonjour à tous, Guido, CISCO,
Tu nous demande en quelque sorte ( actuellement CISCO ) de faire tout le travail à ta place Guido !
Je n'ai pas de notion d' Excel mais je suis quand même capable de faire ce qu'à présenté CISCO !
Mais pas tout ton fichier !
Désolé !
Bon courage CISCO !
@+
 

Guido

XLDnaute Accro
Bonjour à tous, Guido, CISCO,
Tu nous demande en quelque sorte ( actuellement CISCO ) de faire tout le travail à ta place Guido !
Je n'ai pas de notion d' Excel mais je suis quand même capable de faire ce qu'à présenté CISCO !
Mais pas tout ton fichier !
Désolé !
Bon courage CISCO !
@+


Re

Bonjour JBL8,

Tu prend ta phrase comme tu veux Toi.

Avant de demander plus qua la normale ,j'ai quand même essayé, mais je n'y suis pas arrivé.

J'espère que le jour ou tu n'arriveras pas a faire une chose dans ta vie, tu seras tout content d'avoir du

secours.

Slts

Guido
 

CISCO

XLDnaute Barbatruc
Bonjour

Si tu dois agrandir ton fichier vers le bas dans les deux feuilles concernées, pour traiter d'autres cas, normalement, on peut faire :

* pour les MFC, en agrandissant la plage d'application, plus loin que les lignes 61 ou 212, sans changer quoi que ce soit dans les formules

* et pour ce qui est des formules dans les colonnes de droite, avec de simples copier-coller : Tu copies Cotes plus!AC3:AH4, et tu colles cela en te positionnant au bon endroit plus bas. Je l'ai fait dans Cotes plus!AC10, Cotes plus!AC17 et ainsi de suite.

@ plus
 

job75

XLDnaute Barbatruc
Bonjour Guido, CISCO,

Puisque vous en avez fini avec les MFC voici une solution VBA, le code dans ThisWokbook :
Code:
Dim t 'mémorise la variable

Function ProxiInf(limit!) As Byte
Dim i As Byte, maxi!
For i = 1 To 20
  If t(1, i) <> "" Then If t(1, i) < limit Then If t(1, i) > maxi Then maxi = t(1, i): ProxiInf = i
Next
If ProxiInf Then t(1, ProxiInf) = ""
End Function

Function ProxiSup(limit!) As Byte
Dim mini!, i As Byte
mini = 1000000
For i = 1 To 20
  If t(1, i) >= limit Then If t(1, i) < mini Then mini = t(1, i): ProxiSup = i
Next
If ProxiSup Then t(1, ProxiSup) = ""
End Function

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Sh.Name Like "Cote*" Then Exit Sub 'critère
Dim limit1!, limit2!, c As Range, transfer As Boolean, resu As Range, i As Byte, n As Byte
limit1 = 10.1 'à adapter
limit2 = 3.5 'à adapter
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.Goto Sh.[A1], True 'cadrage
For Each c In Sh.UsedRange.Columns(2).Cells
  If c = "Cotes" Then
    transfer = c(2) = "N°" 'teste la ligne
    If transfer Then Set resu = c.EntireRow.Find("C*", c, xlValues, xlWhole): If Not resu Like "C#*" Then transfer = False
    If transfer Then Set resu = resu(1, 2).Resize(2, 6): resu = "" 'RAZ
    With c(1, 2).Resize(, 20)
      .Interior.Color = RGB(204, 255, 255) 'RAZ
      .Font.Color = RGB(128, 0, 128) 'RAZ
      t = .Value
    End With
    For n = 1 To 2
      i = ProxiInf(limit1)
      If i Then
        c(1, i + 1).Interior.Color = RGB(91, 155, 213) 'bleu
        c(1, i + 1).Font.Color = vbWhite
        If transfer Then resu(1, n) = c(2, i + 1): resu(2, n) = c(1, i + 1)
      End If
    Next n
    For n = 1 To 2
      i = ProxiSup(limit1)
      If i Then
        c(1, i + 1).Interior.Color = RGB(51, 153, 102) 'vert
        c(1, i + 1).Font.Color = vbWhite
        If transfer Then resu(1, n + 2) = c(2, i + 1): resu(2, n + 2) = c(1, i + 1)
      End If
    Next n
    For n = 1 To 2
      i = ProxiSup(limit2)
      If i Then
        c(1, i + 1).Interior.Color = RGB(192, 0, 0) 'rouge
        c(1, i + 1).Font.Color = vbWhite
        If transfer Then resu(1, n + 4) = c(2, i + 1): resu(2, n + 4) = c(1, i + 1)
      End If
    Next n
  End If
Next
Application.Calculation = xlCalculationAutomatic
End Sub
Bien sûr ce sont les vraies couleurs qui sont appliquées, toutes les MFC ont été effacées.

La macro se déclenche quand on active l'une des 2 feuilles concernées.

Fichier joint.

A+
 

Pièces jointes

  • GUIDO(1).xlsm
    2 MB · Affichages: 20
Dernière édition:

Guido

XLDnaute Accro
Bonjour le forum

Job75 salut.

Je voulais valider une MFC qui se trouve en page Base point

pour l'adapter dans les pages cotes et cotes plus..

Mais je n'arrive pas a faire le copier coller de D6 sur la cellule page cote AA14.

As tu une petite idées svp

D'avance Merci

A plus

Bonne nuit

Guido
 

Pièces jointes

  • GUIDO(1)2.xlsm
    2.1 MB · Affichages: 56

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 337
Messages
2 087 391
Membres
103 536
dernier inscrit
komivi