Valeur d'une cellule donne valeur variable du même nom
Bonjour,
Sur votre feuille, piqtest est la valeur de la celle A33 tandis que dans votre code, piqtest est une variable qui vaut 2.
si vous faites msgbox piqtest, cela affichera 2.
Cdlt,
Merci pour votre réponse,
J'ai simplifié le problème mais je veux pouvoir utiliser la cellule et interrogé la variable du même nom qui est dans le code pour faire une action.
Si vous voyez ce que je veux dire ? Sub Materiel()
'********Matériel Canne*********************************
Dim z As Byte
Dim e As Byte
Dim n As Byte
Dim derniereL As Byte
'Dim matmont() As Variant
Dim matmont(10, 6)
n = 0
For z = 4 To 14 'jusqu'a la fin du tableau en colonne
If Range("Choix_pos_regulateurs") = Sheets("Montage").Cells(1, z) Then Exit For
Next z
For e = 2 To 32
If Sheets("Montage").Cells(e, z) >= 1 Then 'NE PAS AFFICHER SI PIQRAMPE OU PIQKITROUE =0
'ReDim Preserve matmont(n, 2)
If Sheets("montage").Cells(e, 1) > 0 Then
matmont(n, 0) = Sheets("Montage").Cells(e, 2)
matmont(n, 5) = Sheets("Montage").Cells(e, 3)
End If
'définir les valeur de e en fonction de la colonne pour possible ajout user d'articles
If e <= 13 Then matmont(n, 6) = Sheets("Montage").Cells(e, z) * PiqSt
If PiqTour > 0 And e > 13 And e <= 23 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqTour
If PiqRéh > 0 And e > 23 And e <= 25 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqRéh
If PiqRampe > 0 And e > 25 And e <= 29 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqRampe
If PiqKitroue > 0 And e > 29 And e <= 32 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqKitroue
n = n + 1
End If
Next e
'si matériels = 0 alors supprimer ligne
derniereL = Sheets("User").Cells(Rows.Count, 3).End(xlUp).Row + 3
With Sheets("User").Cells(derniereL, 3)
.Value = "Matériel pour canne de dessente"
.Font.Bold = True
.Font.Size = 14
End With
Worksheets("User").Range(Cells(derniereL + 2, 3), Cells(derniereL + 10, 9)) = matmont
'*********Matériel Régulateur et Arroseurs*****************La partie du code concerné exactement est
If Sheets("montage").Cells(e, 1) > 0 Then
matmont(n, 0) = Sheets("Montage").Cells(e, 2)
matmont(n, 5) = Sheets("Montage").Cells(e, 3)
End IfDésolé, mais je ne comprends pas bien pour le moment.
Que souhaitez vous faire concrètement ? Je parle de l'objectif et pas des moyens que vous mettez en oeuvre pour y parvenir.
Cdlt,
Le fichier à pour objectif de réalisé une liste de matériel qui est définie en fonction des choix de l'user.
Dans le code de ce fichier je crée un tableau qui ensuite s'affiche sur la page user :
Néanmoins ce tableau à des doublons et du matériel dont l'unité est égal à 0. Je souhaite donc obtenir un tableau sans le matériel qui à 0 quantité et sans les doublons. Dans ce post je souhaite solutionner le problème de l'affichage du matériel sans quantité.
Le tableau qui est affiché est réalisé par le biais d'une boucle for qui intérroge un autre tableau qui est le suivant
Par exemple ici l'user à une configuration suivante :
PiqSt=3
PiqTour=0
PiqRampe=0
Je vais donc avoir le tableau suivant :
3 fb6040
3 fb6035
6 fb6038
3 fb5001
pj00115
.etc
Alors que je souhaite seulement le matériel dont la quantité est supérieur à 0.
D'ou le
If Sheets("montage").Cells(e, 1) > 0 Then
matmont(n, 0) = Sheets("Montage").Cells(e, 2)
matmont(n, 5) = Sheets("Montage").Cells(e, 3)
End IfOu j'intérroge la colonne A pour savoir si PiqSt >0 ou si PiqTour >0 etc
Est ce que je me fais comprendre?
Je joins le fichier au cas ou. Cette partie est dans M05_Matériel.
C'est un peu plus clair mais je ne vois toujours pas le lien entre vos 2 tableaux (mis à part le nom et la référence).
Donc, l'objectif est de récupérer les lignes sans doublon et sans valeur nulle ou vide c'est ça ?
Bonjour 3GB,
Il y a deux entrées:
_ les variables calculées au préalable par le code en fonction des choix utilisateurs elles sont nommées : PiqSt, PiqTour, PiqRéhau et sont équivalentes à des nombres. Exemple : l'utilisateur choisi 3 travée de 62m, la machine est de type tour, tout les piquages sont ouvert : il y a donc 60 piqst et 3 piqtour.
_ le tableau qui définit le matériel à prévoir en fonction des types de piquages et type de montage. Si mon montage est de type souple_régulateur_en_bas j'ai 60 piqst alors il me faudra 60 x 1 mamelon 3/4 PE etc. Ce tableaux est préexistant.
Il y a une sortie
_un tableau que je tente de réaliser et qui répertorie seulement le matériel à prévoir en fonction des choix de l'utilisateur. Il est généré automatiquement une fois que l'utilisateur clique sur "étape 3" et à chaque fois qu'une nouvelle machine est configurée.
Pour cette sortie je souhaite supprimer les informations non nécessaire (donc si PiqRAmpe =0, je ne veux pas avoir les coudes aciers galava qui aparaissent dans mon tableau) et regrouper les données logiquement (à savoir additionner les quantités du matériel en doublons et supprimé le double).

