Copier la valeur d'1 cellule en fonction de la valeur d'une LISTE

11nmrbl.xlsm (23.81 Ko)

Bonsoir à tous,

Je possède un fichier qui possède 2 feuilles (feuille "PARTICULIER" et feuille "BL").

Dans le feuillet BL il y a une Liste avec 5 éléments (BL1, BL2, BL3, BL4, BL5). En fonction de l'élément choisir par exemple BL1,

je souhaiterai par l'action du bouton "Insérer la date"

Insérer la date du jour et copier le numéro BL dans la feuille "PARTICULIER" dans la cellule A40 et ainsi de suite ce qui donnerait

BL1 = cellule A40 - BL2 = cellule A41 - BL2 = cellule A41 etc...

D'avance un grand merci à tous pour votre contribution.

Bonjour,

Une solution par rapport à ce que j'ai compris.

Option Explicit

Sub Insere_Date_BL()

Dim I As Integer
Dim ShBl As Worksheet, ShPart As Worksheet

    Set ShBl = Sheets("BL")
    Set ShPart = Sheets("PARTICULIER")

    With ShPart
         .Range("ZoneBlDate").ClearContents
         .Range(.Range("ZoneBl1"), .Range("ZoneBl5")).ClearContents
    End With

    With ShBl
         With .Range("BLDate")
              .Value = Format(Now, "dd/m/yyyy")
              .Copy Destination:=ShPart.Range("ZoneBlDate")
         End With
    End With

    ShPart.Range("ZoneBl" & Right(ShBl.Range("ChoixBL"), 1)) = ShBl.Range("BLNumero")

    Set ShBl = Nothing
    Set ShPart = Nothing

End Sub

Bonjour Eric,

Merci, merci et encore merci pour ton retour c'est tout à fait ce que je recherchais à faire. Cette nuit je suis arrivé à ce résultat en passant par un formulaire mais pas très concluant (désolé je pouvais pas faire mieux). Si je peux abuser, pourrais-tu commenter ton code pour me permettre de le comprendre.

D'avance merci.

Eric,

Trop de précipitation de ma part.

Je ne comprenais pas les "ZoneBlDate", "ZoneB11" "ZoneB15" dans ton code, élément que je n'avais pas créer.

Enfin si j'ai compris - création variable, - effacement des zones, - récupération de la valeur Date dans BL, - ligne que je ne comprends pas - libération de la mémoire avec nothing.

Par contre je ne comprends pas le raisonnement :

ShPart.Range("ZoneBl" & Right(ShBl.Range("ChoixBL"), 1)) = ShBl.Range("BLNumero")

Merci

capture

Si je prends le dernier caractère de la zone nommée "ChoixBL", j'obtiens une valeur comprise entre 1 et 5. Cet indice correspond également à un indice parmi les 5 zones nommées ZoneBl1 à ZoneBl5. Cela signifie qu'en choisissant un indice, on place automatiquement le numéro de BL dans la bonne zone dans l'onglet PARTICULIER.

ShPart.Range("ZoneBl" & Right(ShBl.Range("ChoixBL"), 1)) = ShBl.Range("BLNumero")

Bonsoir Eric,

Merci pour tes explications et excellente soirée.

Rechercher des sujets similaires à "copier valeur fonction liste"