Copie labelbox vers cellule avec mise en forme (simplification du code)

Bonjour à tous,

Pour copier des données d'un userform vers mon tableau récapitulatif J'utilise le code suivant, pour certain label ou textbox la copie doit se faire en respectant la mise en forme j'utilise donc cette partie de code

With Sheets("*****")
   .Cells(derlign1 + 1, 1) = Label1
   .Cells(derlign1 + 1, 1).Font.Bold = True
   .Cells(derlign1 + 1, 1).Font.Underline = True

vu qu'il y a beaucoup de label ou de textbox à copier, y a t-il une façon plus simple d'écrire le code.

En vous remerciant.

Bonjour,

Oui il y a moyen de te simplifier les choses, en créant une boucle.

Mais sans en savoir plus sur ton fichier, dur de t'en dire plus.

Bonjour xXJohnXx, Salut JoyeuxNoel,

Est-ce que vous avez un tableau structuré ? Car ça permettrait en principe de reproduire automatiquement la mise en forme. Voici un exemple avec un tableau structuré nommé "nomtableau" dans le code :

With range("nomtableau") '<<< à adapter
    nvl = .rows.count + 1 'nouvelle ligne
   .Cells(nvl, 1) = Label1
end with

Sinon, il est possible de faire ça mais c'est déjà moins bien :

With Sheets("*****")
    derlign1 = ...
   .Cells(derlign1 + 1, 1) = Label1
   with .range("A:E").rows(derlign1 + 1).Font '<<< modifier colonnes ciblées (ici A:E)
        .Bold = True: .Underline = True
   end with
end with

Cdlt,

Désoler pour le retard,

je n'utilise pas de tableau structurer dans ce fichier.

Je pense que je me suis mal exprimer, l'userform me permet de remplir les données nécessaires pour ensuite les placer dans la feuille excel en suivant une mise en page imposée, je n'ai pas de problème pour le fonctionnement du fichier.

je me demande juste pour les lignes suivantes

With Sheets("*****")
   .Cells(derlign1 + 1, 1) = Label1
   .Cells(derlign1 + 1, 1).Font.Bold = True
   .Cells(derlign1 + 1, 1).Font.Underline = True

s’il était possible d'écrire ces ligne en évitant pour la deuxième et troisième ligne de recopier à chaque fois

.Cells(derlign1 + 1, 1)
mon essai sans succès
   .Cells(derlign1 + 1, 1) = Label1
                             .Font.Bold = True
                             .Font.Underline = True

Bonjour,

Oui, c'est possible, c'est justement tout l'intérêt d'un bloc with, par exemple :

With Sheets("*****")
    nvl = .cells(.rows.count, 1).end(xlup).row + 1
    with .Cells(nvl, 1)
        .value = Label1
        with .Font
            .Bold = True
            .Underline = True
            '.italic = true
            '.color = RGB(0, 0, 255)
        end with
    end with
end with

Il vaudrait mieux utiliser un tableau structuré si possible, surtout quand on alimente la feuille à partir d'un userform.

Cdlt,

3GB, merci pour ton aide qui me permet d'arriver au résultat que je voulais.

Rechercher des sujets similaires à "copie labelbox mise forme simplification code"