Recopier céllule dans Label selon condition

Bonsoir,

Je recherche une solution plus simple de ce que je m'apprête à faire ...
Je vous explique :

J'ai sur une feuille "parametre" de B3 à B14 des prénoms

J'ai sur une feuille "parametre" de C3 à C14 la possibilité d'avoir un "oui" dans ces céllule (soit oui soit vide)

Et dans mon USF j'ai des Label de 1 à Label 8.

J'aimerais que SI en C3 = "OUI" alors on copie B3 en Label1, si vide alors on passe à SI C4 = "OUI" alors on copie B4 et ect... jusqu'au Label8 ...

A ce stade, que le Label1 aura un prénom...

J'aimerais donc continuer avec le Label2 jusqu'au 8...

En gros l'idée c'est : selon la condition "OUI" en colonne "C" que sa recopie les données de la colonne "B" du classeur dans les Label
Mais dans l'ordre...

Le Label1 ne peux pas avoir le prénom du B4 et le Label2 le prénom du B2...

Voici une copie de mon code (mais si je continue ainsi il va falloir 1000 lignes ...)

Si quelqu'un pourrais m'aider svp merci à vous

    If Worksheets("Parametre").Range("C3") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B3")
    Else
    If Worksheets("Parametre").Range("C4") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B4")
    Else
    If Worksheets("Parametre").Range("C5") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B5")
    End If
    End If
    End If

    If Worksheets("Parametre").Range("C3") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B3")
    Else
    If Worksheets("Parametre").Range("C4") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B4")
    Else
    If Worksheets("Parametre").Range("C5") = "oui" Then
    Me.Label11 = Worksheets("Parametre").Range("B5")
    End If
    End If
    End If

Edit modo : gras du texte supprimé, merci de respecter la charte du forum SVP

Bonjour,

Soient deux tableaux structurés t_Prenoms et t_Labels

capture

Dans un module standard :

Option Explicit

Public AirePrenoms As Range, AireCondition As Range, AireLabels As Range

Sub ChargerLUsf_Prenoms()

Dim I As Integer, LabelEnCours As Integer
Dim Continuer As Boolean
Dim MonLabel As Control

  Set AirePrenoms = Range("t_Prenoms[Prénoms]")
  Set AireCondition = Range("t_Prenoms[Condition]")
  Set AireLabels = Range("t_Labels[Labels]")
  LabelEnCours = 1
  Continuer = True

  With Usf_Prenoms

       For Each MonLabel In .Controls
           MonLabel.Caption = ""
       Next MonLabel

       For I = 1 To AireCondition.Count
           If LCase(AireCondition(I)) = "oui" Then

              For Each MonLabel In .Controls
                  If MonLabel.Name = AireLabels(LabelEnCours) And Continuer = True Then
                     MonLabel.Caption = AirePrenoms(I)
                  End If
              Next MonLabel

              LabelEnCours = LabelEnCours + 1
              If LabelEnCours = 8 Then Continuer = False

           End If
       Next I
       .Show
  End With

  Set AirePrenoms = Nothing: Set AireCondition = Nothing: Set AireLabels = Nothing

End Sub
capture1
sans titre

Bonjour,

Merci à toi :)

J'ai recopier le code dans un nouveau Module (3)

J'ai crée le tableau comme toi en donnant des nom (onglet formules - Gestionnaire de noms dans excel)

Mais les Labels dans le VBA reste vide :/

sans titre1
Rechercher des sujets similaires à "recopier label condition"