Générer une feuille avec une mise en forme particulière pour imprimer une ligne de données

Bonjour à tous,:grinning:

Je voulais savoir s’il était possible, depuis un tableau de données Excel, de créer une nouvelle feuille en disposant ces données dans un masque prédéfini créer pour imprimer. Ceci pour éviter d’avoir à créer des centaines de feuilles manuellement.

J’ai un tableau avec plusieurs centaines de données. Je voudrai pourvoir imprimer les données d’une ligne, et qu’elles soient disposées automatiquement d’une autre façon dans une feuille prête pour impression.

Et j’aimerai pourvoir choisir uniquement la ligne qui m’intéresse à l’instant “t” pour l’impression. Donc pouvoir sélectionner la ligne voulue et générer la mise en forme pour cette ligne de données.

Je ne sais pas si je suis assez clair dans mon propos ?:sweat_smile:

J’ai mis un exemple complètement fantaisiste pour imager ce j’aimerai obtenir et savoir si c’est réalisable. Et si vous pouvez me dire comment, ça serait top.:relaxed:

Exemple.xlsx (12,2 Ko)

Bonjour,

Il suffit par double clic sur une des cellules de A à H de la feuille DONNEES pour que les valeurs se placent dans le masque d’impression

MACRO :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim Ws As Worksheet, Wd As Worksheet
  Dim ligne%, Dl%
  
  Set Ws = Worksheets("Données") 'feuille source
  Set Wd = Worksheets("Masque d'impression") 'feuille destination
  
  Dl = Ws.Range("A" & Rows.Count).End(xlUp).Row
    If Not Application.Intersect(Target, Ws.Range("A2:H" & Dl)) Is Nothing Then
      ligne = Target.Row 'N° de la ligne sélectionnée
      'Copie les données sur le maque d'impression dans les cellules concernées
      Wd.Range("A1") = Ws.Cells(ligne, 1)
      Wd.Range("C1") = Ws.Cells(ligne, 2)
      Wd.Range("H1") = Ws.Cells(ligne, 3)
      Wd.Range("E3") = Ws.Cells(ligne, 4)
      Wd.Range("A27") = Ws.Cells(ligne, 4)
      Wd.Range("A10") = Ws.Cells(ligne, 5)
      Wd.Range("A3") = Ws.Cells(ligne, 6)
      Wd.Range("B7") = Ws.Cells(ligne, 7)
      Wd.Range("F7") = Ws.Cells(ligne, 8)
    End If
End Sub

Vode.xlsm (20,5 Ko)

C’est génial !:smiley:

C’est exactement ce que je voulais. Mille merci à Mimimathy et bonne journée.:+1:

La macro marche très bien, encore merci. J’ai juste détecté un petit problème par rapport à mon tableau de données à cause des cases vides de certaines lignes.

Quand la macro est exécutée avec une 1ère ligne dont toutes les cases sont remplies et qu’ensuite j’enchaîne sur une 2ème ligne avec cases vides, certaines données de la 1ère ligne pleine restent et ne sont pas écrasées à cause des cases vides de la 2ème ligne.

Quand la macro est exécutée, est-il possible d’ajouter une RAZ automatique la feuille “masque d’impression” avant que les données ne soient insérées ? Mais uniquement les cases qui changent avec les valeurs de la feuille “Données”, pas la feuille entière.

Re,
A tester

Vode.xlsm (20,9 Ko)

Nickel, ça marche parfaitement.:ok_hand:

Merci Mimimathy ! :smiley:

Une dernière petite question, est-il possible de garder la mise en forme du contenu d’une case de la base de donnée quand elle est copiée dans le masque d’impression ?

Exemple inventé :
Dans la base : une case contient du texte souligné, en rouge et en gras.
J’aimerai que le contenu de cette case reste “souligné, en rouge et en gras” quand il est transféré dans le masque d’impression.

Sachant que chaque case de la base peut avoir un style différent (couleur différente, non gras, italique, etc. …) sinon j’aurai appliqué le style directement dans le masque d’impression.

Merci d’avance pour votre aide. :smiley:

Re,

Etant donné que le masque d’impression contient des cellules fusionnées (A1 & B1) par exemple, il récupèrera le format, mais ôtera la fusion, et la mise en forme d’origine :wink:

Là actuellement, le contenu d’une case de la base de données est copiée par exemple dans un ensemble de cellules fusionnées du masque d’impression, elles restent fusionnées, mais si la police est en rouge et gras, ça ne suit pas. La macro copie le contenu sans la mise en forme d’origine.

Donc tu veux dire que ce n’est pas possible ? Ou uniquement pour sur des cellules qui ne seraient pas fusionnées ?

Re,

Si tu veux récupérer le format de police, taille couleur etc d’une cellule, tu récupéreras sur une seule cellule ou plus suivant la cellule source
mais tu ne pourras par garder la taille de la police destination, où alors, il faut faire tout un codage pour le mettre comme tu le désires :face_with_raised_eyebrow:

Après il faudait un exemple des données “concrètes” à placer, car pour mettre en DISPOSION un simple AVEC il ne faut pas 15 lignes, tout comme les conditions,

Pensez simplement que la personne qui peut vousdonner un coup de pouce, n’est pas dans votre t^te et que s’il n’a pas toutes les données en main, il ne fera rien de ce que vous désirez, et moi de mon côté, je n’aime pas revenir 50 fois sur un sujet qui aurait pu être exploité dés le départ avec de bonnes infos. :wink:

Oui c’est vrai, je comprend. J’aurai dû mieux affiner ma demande. Encore un grand merci pour ton aide, c’est génial ce que tu as fait et ça répond parfaitement à mon attente. :smiley::+1::+1::+1:

J’ai ajouté un exemple pour imager mon propos mais je pense que c’est trop compliqué à mettre en œuvre…

Vode.xlsm (20,8 Ko)

Re,

Effectivement, là, il faut pas trop rêver :face_with_raised_eyebrow:

Re,

A tester
EXEMPLE BDDFICHE DE POSER Full Automatisee.xlsm (28,5 Ko)

Nickel ! Ça fonctionne. :ok_hand:
Je t’embêterai plus avec mes demandes farfelues…:sweat_smile:

Mille fois merci pour ton aide précieuse.:+1: :smiley:

Re,

Ok
Si ton probleme est resolu n’oublie pas de cliquer sur le petit :white_check_mark: sous la solution pour la valider.
A la prochaine

C’est fait, encore merci. :grinning:

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.