Office 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++++
 

Fichiers joints

Roblochon

XLDnaute Accro
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
 

Fichiers joints

Roblochon

XLDnaute Accro
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
 

Fichiers joints

Scorpio

XLDnaute Impliqué
Re bonjour,
Merci beaucoup, super,
J'ai juste une question sur le tri en colonne "G", si je veux l'ordre du plus petit en haut et le plus grand en bas je change par
Order:=xlAscending, mais ca marche pas
 

Roblochon

XLDnaute Accro
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
 

Roblochon

XLDnaute Accro
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
 

Scorpio

XLDnaute Impliqué
Re, Roblochon.
J'ai opté pour le code du fil #8
Super, magnifique, c'est suzper gentil de votre aide
J'en ai fini avec ce souci, Vous souhaite une bonne soirée et très bon weekEnd
Encore merci
A+++
 

Discussions similaires


Haut Bas