Microsoft 365 Transfert ligne par ligne

Scorpio

XLDnaute Impliqué
Bonjour à tous,
Dans ce classeur, Feuil1 je transfert ligne par ligne, si dans la colonne "H" y figure le mot "Payé", transfert dans la feuil2.
Le souci, c'est que le code transfert aussi la liste déroulante.
Mais, je n'arrive pas et je suis pas champion comme vous, pour corriger le code, et, j'aimerais bien que ce code ne transfert pas la liste déroulante, mais seulement la valeur.
Voilà, je vous remercie d'avance pour votre aide, et A++++
 

Pièces jointes

  • 119_TransfertLigneLigneV1.xlsm
    44.8 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Remplacer MaPlage.Copy Destination par ces deux lignes, seules les valeurs seront copiées.
VB:
MaPlage.Copy
Destination.PasteSpecial xlPasteValues

S'il faut passer également les formats, rajouter la ligne: Destination.PasteSpecial xlPasteFormats

Bon après
 

Scorpio

XLDnaute Impliqué
Re, Roblochon
J'ai ajouter en bas du code un Tri, sélectionné sur la colonne Date du plus ancien au plus récent,
Mais, lors du transfert, la plage dans la feuil1 reste sélectionnée, et je trouve pas mon erreur.
Pourriez vous s'il vous plaît m'informer ??
A+++ merci
 

Pièces jointes

  • 119_TransfertLigneLigneV1.xlsm
    38.8 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Re bonjour,

Pour la sélection c'est l'objet .Sort de la feuille qui entraîne cela, il faut soit séléctionner autre chose soit employer la méthode sort de l'objet range.
C'est ce que j'ai fait dans le fichier joint. J'ai également refait et commenter la macro de copie/suppression des lignes 'Payé'.

J'ai séparer la macro d'export des lignes de celle de tri. Il est toujours plus facile de debugger une macro chargée d'une seule fonction. De plus vous pourrez avoir besoin de la fonction de tri des exports dans d'autre macros.

Bonne consultation
 

Pièces jointes

  • 119_TransfertLigneLigneV1.xlsm
    34.7 KB · Affichages: 8

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Alors utilisez :
VB:
Sub TrierExport()
    Dim plg As Range
    Set plg = Worksheets("Feuil2").Range("A1").CurrentRegion
    With plg.Parent.Sort
        With .SortFields
            .Clear
            .Add Key:=plg.Columns(7), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        End With
        .SetRange plg
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Bonne soirée
 

Hasco

XLDnaute Barbatruc
Repose en paix
re bonsoir,

La méthode sort de l'objet range écrite comme ceci semble mieux fonctionner:

VB:
Sub TrierExport2()
    With Worksheets("Feuil2")
        .Range("A1").CurrentRegion.CurrentRegion.Sort Key1:=.Range("G2"), order1:=xlAscending, Header:=xlYes, dataoption1:=xlSortNormal
    End With
End Sub
A vous de choisir celle que vous préférez des deux méthodes.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400