VBA, Valeur max tableau multifactoriel

Bonjour,

J'essaye de réaliser un outil qui permet de réaliser un inventaire en plusieurs étapes, l'idée est qu'a chaque étape l'utilisateur clique sur un bouton, une action se réalise en fonction de ses choix et un autre bouton apparaît pour pouvoir lancer l'étape suivante.

Etape 1 : Des listes déroulantes apparaissent en fonction du nombre de travée choisi, du type et de la présence de PAF
Etape 2: Une représentation des piquages des travées s'élabore en fonction des longueurs choisis

Par exemple si l'utilisateur choisi travée standard puis 62 en longueur, en se rapportant au tableau Cannes, cela correspond à 21 piquages

Je n'arrive pas à lire les valeurs de mon tableau page "cannes" pour savoir quel est le nombre de piquages max par longueur de travées avec les deux critères défini par l'utilisateur.

Et du coup pouvoir enregistrer ces valeurs pour les réutiliser plus tard. Ci après mon code :

Sub PIQUAGES()

Dim TYPES As String
Dim LONGR As Range

With Sheets("User")

TYPES = .Cells(F, 7)
LONGR = .Cells(B, 18)

End With
With Sheets("Cannes")
   L1 = 0
    For L = 2 To .Range("A65500").End(xlUp).Row
        If .Cells(L, 1) = TYPES And .Cells(L, 2) = LONGR Then
            L1 = L
        End If
        If .Cells(L, 1) = TYPES And .Cells(L, 2) = LONGR And .Cells(L, 3) = PIQUAGE Then
        PIQUAGE = .Cells(L, 5)

        Else
            If .Cells(L, 1) = TYPES And .Cells(L, 2) = LONGR And .Cells(L, 3) > PIQUAGE Then
                Exit For
            End If
        End If
 MsgBox (PIQUAGE)
 Next L
 End With

 End Sub

Hello,

Bon BARNS il va falloir qu'on cause tout les 2 ...

Les listes déroulantes sont faites pour "normer" les choses et te rendre l'exploitation derrière + simple... Donc si dans ta liste déroulante tu as "Travees_ST" et que dans ta feuilles "CANNES" tu as "TRAVEES ST" on a un gros problème de formalisme ...

Passons à VBA maintenant :

Il est important de déclarer tes variables !

Pour info cette syntaxe ne fonctionne pas :

TYPES = .Cells(F, 7)

c'est soit :

TYPES = .Cells(1, 1)
TYPES = .Range("A1")
TYPES = .[A1]
TYPES = .Cells(1, "A")

Ceci étant dit , voici ma proposition :

Sub PIQUAGES()

Dim stravees_type As String
Dim ilongueur As Integer
Dim iligne As Integer

With Sheets("user")

stravees_type = .[F7]
ilongueur = .[B18]

End With
With Sheets("Cannes")

    Do
        iligne = iligne + 1
    Loop Until .Cells(iligne, 1) = stravees_type _
                            And .Cells(iligne, 2) = ilongueur

  Do While .Cells(iligne, 1) = stravees_type _
                            And .Cells(iligne, 2) = ilongueur
        iligne = iligne + 1
  Loop

   MsgBox "Le piquage est de : " & .Cells(iligne - 1, 3)
End With

 End Sub

Salut Rag02700,

Merci beaucoup pour tes remarques. Je prends note. Effectivement nous souhaitons que le fichier soit le plus logique possible. GROOSSE ERREUR de ma part, sorry..

Je vais mettre de l'ordre dans tout ca et tenter d'avancer dans ce projet ;).

Bonne semaine!

Hello,

Du coup ton sujet est résolu ?

Salut Rag02700,

Oui j'ai fait un très gros travail d'uniformisation et de tri des données et j'ai pas mal avancé sur le projet. Maintenant je déclare toutes mes variables. Après je sens que dans la structure globale, il y a des points que je peux améliorer mais j'avance comme je peux. Si tu as des conseils je suis preneur :)

Hello,

J'ai regardé dans les grandes lignes, c'est pas mal

Bon aller chipotons un peu

Je suis pas trop fan des déclarations qui ne sont pas en haut de module

For x = 1 To 16
    If Range("Choix_montage").Value = Sheets("Datas").Cells(x, 15) Then k = Sheets("Datas").Cells(x, 14)
Next x

  If ActiveSheet.Name <> "User" Then Exit Sub
  'Dim TypTrv$: TypTrv = Range("Type_travée").Value:
  If TypTrv = "" Then Exit Sub
  'Dim TypCan$: TypCan = Range("Type_de_canne").Value:
  If Typcan = "" Then Exit Sub
  'Dim HtrArr$: HtrArr = Range("Hauteur_arroseurs").Value
  Dim n1&: n1 = Cells(Rows.Count, 2).End(3).Row: If n1 < 18 Then Exit Sub
  Dim s$, m%, d%, n2&, vx$, pg As Byte, L%, i&, p&, j&: m = Columns.Count
Rechercher des sujets similaires à "vba valeur max tableau multifactoriel"