XL 2013 Aide pour macro

débutantplus

XLDnaute Junior
Bonjour à tous,
J'ai un soucis sur une macro, cette macro a pour but de recopier des lignes d'une feuille à l'autre si elles possèdent le bon critère.
La macro fonctionne, le seul problème est qu'à chaque fois que je l'utilise elle recopie les lignes à la suite de celles qui avaient déjà été recopiés.
Je souhaiterai qu'elle envoi les données à recopier toujours en partant de la même cellule.
Sub Copie_Non_Livre()
Application.ScreenUpdating = False
Dim CMD As Worksheet, TDB As Worksheet, DerligSrc&, DerligDst&, i&, NB&

Set CMD = Worksheets("COMMANDES")
Set TDB = Worksheets("Tableau de bord")

With CMD
DerligSrc = .Range("B" & Rows.Count).End(xlUp).Row
DerligDst = TDB.Range("A" & Rows.Count).End(xlUp).Row + 1
[A8] = 1: .Range("A8:A" & DerligSrc).DataSeries
.Range("A8:O" & DerligSrc).Sort Key1:=.Range("O8:O" & DerligSrc), Order1:=2, Header:=xlNo
NB = WorksheetFunction.CountIf(.Range("O8:O65500"), "Non livré") - 1
TDB.Range("B" & DerligDst - n & ":M" & DerligDst + NB) = .Range("D8:O" & 8 + NB).Value
TDB.Range("A" & DerligDst - n & ":A" & DerligDst + NB) = .Range("B8:B" & 8 + NB).Value
.Range("A8:O" & DerligSrc).Sort Key1:=.Range("A8:A" & DerligSrc), Order1:=1, Header:=xlNo
.Range("A8:A" & DerligSrc).ClearContents
End With
Set CMD = Nothing: Set TDB = Nothing
End Sub

Private Sub CommandButton1_Click()
Copie_Non_Livre
End Sub
Merci pour votre aide
 

Pièces jointes

  • Classeur13 - Copie.xlsm
    692.6 KB · Affichages: 10
Solution
Bonjour @débutantplus , @patty58

Quelques remarques :

1) Mettre des tableaux structurés les uns en dessous des autres est un réel risque de perte de données.

2)Ton problème vient du fait que tu as justement un tableau structuré donc tu peux mettre des données :

==> A) Soit à la suite des précédentes dans ton tableau
==> B) Soit on vide le tableau et on remet des nouvelles valeurs à la place des précédentes

Si j'ai compris (mais tu n'es pas très clair) tu veux l'option B

3) J'ai incorporé la colonne disponibilité au tableau

1648121508885.png


==>La version de @patty58 risque de te poser un problème car il n'efface pas les données du tableau

*Merci de ton retour

@Phil69970

Phil69970

XLDnaute Barbatruc
Re

Voici la nouvelle version

Un autre question qui va s'en doute vous paraitre bête mais lorsque la macro s'effectue les données de cette colonne perdent leurs formats et deviennent des chiffres standards savez vous pourquoi ?
En fait un tableau vide au départ il faut en quelque sorte "initialiser" le format de la colonne "Date de livraison"
avec un format "Date courte" après même quand le tableau est vide excel se souvient du format de la colonne.

1648133568055.png


@Phil69970
 

Pièces jointes

  • Copie tbl V4.xlsm
    714.2 KB · Affichages: 1

débutantplus

XLDnaute Junior
Re

Voici la nouvelle version


En fait un tableau vide au départ il faut en quelque sorte "initialiser" le format de la colonne "Date de livraison"
avec un format "Date courte" après même quand le tableau est vide excel se souvient du format de la colonne.

Regarde la pièce jointe 1134727

@Phil69970
Cela fonctionne mais j'ai compris la manipulation vous avez fait quoi exactement ?
Merci beaucoup pour le temps que vous m'accordait
 

Statistiques des forums

Discussions
300 795
Messages
1 987 251
Membres
209 760
dernier inscrit
dedegallagher