Valeur d'une cellule donne valeur variable du même nom

Bonjour j'ai écris sur ma feuille excel :

image

colonne A

J'ai le code :

Sub test()

piqtest = 2

MsgBox Sheets("montage").Cells(33, 1)

End Sub

mais j'ai comme résultat

image

Je souhaiterais avoir 2.

Quelqu'un à une idée?

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 If

Dé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 :

image

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

image

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 If

Ou 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.

16confpartage-v20.xlsm (181.97 Ko)

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).

Rechercher des sujets similaires à "valeur donne variable meme nom"