Copier/coller dans un tableau [Résolu]

Signaler
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021
-
 jsch19 -
Bonjour,
Je cherche une solution a mon problème. J’ai deux tableaux excel dans mon projet ; un sur une feuille nommer “Attente” l’autre sur une feuille nommer “Vente”... je veux par une macro pouvoir copier toutes les lignes dont la colonne “E” de la feuille “Attente” qui a pour valeur 387 vers le tableau de la feuille “Vente”. J’ai réussi a le faire avec une macro mais cela ne prend pas en compte le tableau et colle le résultat au-dessous de la dernière ligne du tableau et n’entre pas dans le tableau. Mon soucis c’est que je veux que la macro colle le résultat dans l’autre tableau et efface les lignes qu’il vient de copier

4 réponses

Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785
bonjour, peut-être pourrais-tu commencer par nous montrer le code de ta macro?
tiens compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

<code basic>Private sub CommandButton1_Click
a=worksheets(“Attente”).range(“B” & rows.count).End(xlUp).row

For i=7 to a
     
         If Worksheets(“Attente”).Cells(i,5).value=387 then
Worksheets(“Attente”).Rows(i).Copy
worksheets(“Attente”).Activate 

With worksheets(“Vente”)
b= worksheets(“Vente”).range(“B43”).End(xlUp).row

worksheets(“Vente”).cells(b+1,1).select
worksheets(“Vente”).PasteSpecial

End with
End if
Next
Application.CutCopyMode=False

End sub
</code>
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

Tout ce que j’essaie afin que les lignes copier soient collés dans le tableau de la feuille Vente, je n’arrive pas. Le résultat est coller au-dessous du tableau sans que le tableau ne le prend pas en compte.
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

si je comprends bien, le résultat est copié au bon endroit, mais tu souhaites modifier les dimensions du tableau?
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Bonjour, la macro fonctionne tres bien quand il n’y a pas de tableau, une fois la page contient un tableau elle laisse le tableau vide pour coller le résultat hors du tableau. Moi j’aimerais que le résultat soit coller dans le tableau.
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

peux-tu peut-être partager un fichier exemple?
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

Je ne vois ps comment envoyer le fichier sur le forum
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785
c'est très simple, tu publies ton fichier sur internet (google drive, cjoint.com, ...), et tu partages ici un lien vers le fichier.
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Dans le fichier que je vous ai parvenu mais dans mon fichier principal que j’utilise avec un userform cela prend 55 seconde pour s’exécuter. C est le meme code que j’utilise sauf que le fichier est de 125 436 kb
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
18
Date d'inscription
mercredi 30 octobre 2019
Statut
Membre
Dernière intervention
5 janvier 2021

peux-tu partager un fichier où cela prend trop de temps?
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Corriger_Click()

Me.Label92 = "C"


Application.ScreenUpdating = False

Dim x As String

x = Val(Worksheets("Configuration").Range("T7").Value) - 1

Dim start As Single
'en début de la macro
start = Timer

If MsgBox("Vous êtes sur le point de corriger le dernier ticket,voulez-vous continuer ?", vbYesNo) = vbYes Then


 If Worksheets("Vente").Range("C8") <> "" Then

MsgBox "Vous ne pouvez pas corriger le dernier ticket si il y a une commande!"

Else

Dim a As Long, b As Long, i As Long, lrow1 As Long
Dim tb As ListObject, rg As Range

a = Worksheets("Details des Ventes").Range("B" & Rows.Count).End(xlUp).row
lrow1 = Worksheets("Details des Ventes").Cells(Rows.Count, "U").End(xlUp).row
Set tb = Worksheets("Vente").ListObjects("Table6")
For i = 7 To a
     If Worksheets("Details des Ventes").Cells(i, 9).Value = x Then
        Worksheets("Details des Ventes").Rows(i).Copy
        Worksheets("Vente").Activate
        b = Worksheets("Vente").Range("B1048575").End(xlUp).row
        Set rg = tb.Range
        Set rg = rg.Resize(rg.Rows.Count + 1)
        tb.Resize Range(rg.Address)
        Worksheets("Vente").Cells(b + 1, 1).Select
        Worksheets("Vente").PasteSpecial
   End If
Next
Application.CutCopyMode = False
Set tbs = Worksheets("Details des Ventes").Cells(7, 9).ListObject
nligs = tbs.ListRows.Count
For nlig = nligs To 1 Step -1
    If tbs.ListRows(nlig).Range.Cells(1, 8) = x Then
        tbs.ListRows(nlig).Delete
    End If
Next nlig


Set tbs = Worksheets("Vente").Cells(7, 9).ListObject
nligs = tbs.ListRows.Count
For nlig = nligs To 1 Step -1
    If tbs.ListRows(nlig).Range.Cells(1, 2) = Empty Then
       tbs.ListRows(nlig).Delete
    End If
Next nlig

     End If
     
 End If

 
Application.ScreenUpdating = True

 
On Error Resume Next
Worksheets("Vente").Range("Z7") = "**"

    Range("Table6").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Worksheets("Vente").Range("Z6:Z7"), CopyToRange:=Worksheets("Vente").Range("AB6:AU6"), Unique:=False

Me.ListBox1.RowSource = "Offset13"
 
Dim k As Byte
Dim ab As Integer
Dim r As Double
Dim d As Integer

d = Val(Sheet14.Range("B8").Value)

ab = ListBox1.ListCount

For k = 1 To ListBox1.ListCount
r = r + (ListBox1.List(k - 1, 15))

Next

Me.Label85 = r
Me.TextBox19 = r


Dim s As Integer
Dim q As String
Dim i1 As Byte
Dim r1 As Double

q = Sheet14.Range("AG7").Value

For i1 = 1 To ListBox1.ListCount
r1 = r1 + (ListBox1.List(i1 - 1, 14))

Next

Me.Label87 = Format((r1), "#,##0.00") & " " & q
Me.Label86 = (r) * d / 100
Me.Label88 = (r) + (r) * d / 100 - r1
Me.Label44.Caption = "Promotion" & " " & Format(r1 / r * 100, "#,##0.0") & "%"


Dim j As Byte
Dim bc As Integer
Dim T As Double

On Error Resume Next
bc = ListBox1.ListCount

For j = 1 To ListBox1.ListCount
T = T + ListBox1.List(j - 1, 10)

Next

Me.Label79 = "Nb articles : " & T & " /" & "Nb lignes :" & " " & Application.WorksheetFunction.CountIf(Range("FactureD"), Val(Me.Facture) - 1)
Sheets("Fiche1").Range("B58") = "Nb articles: " & T
Sheets("Fiche1").Range("C52") = "Promotion" & " " & Format(r1 / r * 100, "#,##0.0") & "%"
Sheets("Fiche1").Range("F51") = (r) * d / 100
Sheets("Fiche1").Range("F52") = r1


Me.Label88 = Format(Me.Label88, "#,##0.00") & " " & q
Me.Label85 = Format(Me.Label85, "#,##0.00") & " " & q
Me.Label86 = Format(Me.Label86, "#,##0.00") & " " & q

'avant end sub
MsgBox "durée du traitement: " & Timer - start & " secondes"
> jsch19
https://drive.google.com/file/d/1KsqWlIZhfWBE88pLryxKg_9HRRvsKKxv/view?usp=sharing
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Voila le code que j'utilise dans mon fichier, similaire au fichier dont j'ai publie je ne vois pas pourquoi cela prend 35 seconde a s'executer dans mon fichier principalet prends que 1,5 seconde dans le fichier dont j'au publie.