Collage valeur sur plusieurs onglets et supprimer les lignes restantes vide

Bonjour,

J'ai mis en PJ 2 fichiers test pour que ce soit plus concret, un vierge et un après manipulation.

Je souhaite faire un copier collage valeur de mon tableau "BASE" sur chaque onglet correspondant aux onglets du tableau "BASE"

Je souhaiterais que les valeurs se colle de "LIBELLE" à "AFFECTATION" dans chaque onglet que j'ai remplis en jaune pour me faire comprendre et que toutes les lignes vides de chaque onglet en dessous se supprime.

J'ai mis les 2 fichiers et j'ai fait des copier collage valeur a la main pour montré le résultat que je
souhaite sans y passer 2 heures.

Etant donné que je peux avoir 20 ou 30 onglets j'aimerais le faire plus rapide qu'a la main.

J'ai cherché sans trouver de solution.

Macro, formule ou POWER QUERY tout me va.

Merci d'avance pour votre aide.

Cordialement,

9im-test-vierge.zip (44.61 Ko)

Bonjour Maverick59264

Vous êtes apparemment en v2016, enregistrer les fichiers au format ".xlsx" ou ".xlsm" ne serait pas du luxe

Voici un code qui devrait fonctionner

Sub RepartitionCompta()
  Dim ShtS As Worksheet
  Dim NomSht As String, ShtD As Worksheet
  Dim dLig As Long, Lig As Long, nLig As Long
  ' Définir la feuille source
  Set ShtS = ThisWorkbook.Sheets("BASE")
  ' Dernière ligne de cette feuille
  dLig = ShtS.Range("A" & Rows.Count).End(xlUp).Row
  ' Poru chaque ligne
  For Lig = 2 To dLig
    ' Si le code TVA (1ère cellue vide) est vide on passe à la suite
    If ShtS.Range("F" & Lig) = "" Then GoTo SuiteLig
    ' Copier les infos
    NomSht = ShtS.Range("A" & Lig).Value
    Set ShtD = Sheets(NomSht)
    ' Nouvelle ligne dans l'onglet de destination
    nLig = ShtD.Range("I" & Rows.Count).End(xlUp).Row + 1
    ' Copier coller les infos
    ShtS.Range("B" & Lig).Resize(, 7).Copy Destination:=ShtD.Range("C" & nLig)
    ' On continue
SuiteLig:
  Next Lig
  ' Effacer les variable objet
  Set ShtS = Nothing: Set ShtD = Nothing
End Sub

A+

Bonjour,

La macro fonctionne bien cependant je voudrais qu' une fois les valeurs collé toutes les lignes du dessous ce supprime jusqu'à la ligne bleu "END OF LINE ITEM BLOCK".

Merci pour ta remarque pour le format et merci pour ton aide

Bonjour,

J'ai remis le fichier après avoir lancé la MACRO et j'ai 2 remarques :

- Je souhaiterais collé en valeur chaque bloque même le sous total j'ai mis en rouge la ligne qui manque.

- Je souhaiterais que toutes les lignes en dessous soit supprimer j'ai mis en jaune les lignes à supprimer avec une indication.

Pour tous les onglets

Si quelqu'un si connait en Macro je suis preneur.

Cordialement,

Bonsoir Maverick59264

Dans le style, je persiste et signe désolé pour vous je l'ai enregistré au format normal pour 2016, soit ".xlsm"

Voici le fichier avec le code modifié pour ce qui est demandé

Bonjour,

Oui j'ai remis le format 2016, la macro fonctionne mais elle me mais débocage et me mais qu'il y a une erreur à ce niveau la

"Set ShtD = Sheets(NomSht)"

J'ai mis en dessous

la fenêtre qui apparaît.

erreur macro

Merci pour ton aide

Cordialement,

Bonjour Maverick59264

C'est qu'une des feuilles sollicitées n'existe pas

Arf effectivement, tu as une ligne vide à la fin

image

Il faut soit la supprimer, soit ajouter un test dans le code

A+

Bonjour,

Merci j'ai supprimer la dernière ligne et cela fonctionne parfaitement.

Merci pour ton aide encore je vais gagner beaucoup de temps.

Cordialement,

Re,

Mais de rien avec grand plaisir 😜

Rechercher des sujets similaires à "collage valeur onglets supprimer lignes restantes vide"