Copier puis supprimer des données d'une feuille suivant condition

Graziella44

XLDnaute Nouveau
Bonjour à tous :)

Ne connaissant presque rien en VBA je fais appelle à vos connaissances.

Mon objectif est de copier dans une feuille "STOCK" les données de la feuille "COMMANDE" (colonnes A B C) répondant à la condition "Oui" de la colonne ACHAT, à la suite des autres données évidemment. Puis de supprimer les lignes "Oui" afin qu'il ne reste que les lignes non dans la feuille "COMMANDE".

Je vous joins un fichier zip

Merci d'avance

Grazi
 

Pièces jointes

  • Achat CD.zip
    3.3 KB · Affichages: 37

dixit

XLDnaute Impliqué
Re : Copier puis supprimer des données d'une feuille suivant condition

bonjour,
voir le classeur joint
la macro est relativement simpliste mais accessible à un(e) débutant(e).
je peux ajouter des commentaires si besoin, me dire.
bye
 

Pièces jointes

  • ED75853Graziella44-transfert-.xls
    37.5 KB · Affichages: 98
  • ED75853Graziella44-transfert-.xls
    37.5 KB · Affichages: 98
  • ED75853Graziella44-transfert-.xls
    37.5 KB · Affichages: 97

marmotte18

XLDnaute Impliqué
Re : Copier puis supprimer des données d'une feuille suivant condition

Bonjour,

J'ai nommé "Achat" l'ensemble de la colonne D.

Voilà ma proposition :

Code:
Sub Cop()
    Dim Cellule As Range, Ligne As Long, LigneLibre As Long
 
    'Recherche de la ligne disponible sur Stock
    '------------------------------------------
    Sheets("Stock").Select
    Set Cellule = Range("A65536").End(xlUp)
    LigneLibre = Cellule.Row + 1
 
    'Analyse des commandes
    '---------------------
    Sheets("COMMANDE").Select
 
    For Each Cellule In Range("Achat")
        Ligne = Ligne + 1
        If Cells(Ligne, 4) = "Oui" Then
 
            Sheets("STOCK").Cells(LigneLibre, 1) = Cells(Ligne, 1)
            Sheets("STOCK").Cells(LigneLibre, 2) = Cells(Ligne, 2)
            Sheets("STOCK").Cells(LigneLibre, 3) = Cells(Ligne, 3)
            LigneLibre = LigneLibre + 1
 
        End If
    Next
 
End Sub

et le fichier attaché.

Ne faudrait-il pas remettre à non les commandes, une fois la copie faite ? En effet, si tu lances plusieurs fois la macro, les inscriptions dans la feuille STOCK se feront plusieurs fois !
 

Pièces jointes

  • Achat CD - Marmotte.xls
    32 KB · Affichages: 75
Dernière édition:

Graziella44

XLDnaute Nouveau
Re : Copier puis supprimer des données d'une feuille suivant condition

Bonjour :)

Merci à vous deux pour ces réponses rapides.

En fait je vais retenir la solution de Dixit qui me va parfaitement puisque les lignes "oui" sont éffacées après la copie dans la feuille "STOCK" ce qui évite les doublons ou de renommer les lignes "oui" en "non".

Il ne me reste plus qu'à essayer de comprendre le code :rolleyes:

Merci encore

A bientôt

Grazi
 

marmotte18

XLDnaute Impliqué
Re : Copier puis supprimer des données d'une feuille suivant condition

Bonjour,

Pour mettre la ligne à non, il n'y a qu'une ligne à ajouter :

Code:
Sub Cop()
    Dim Cellule As Range, Ligne As Long, LigneLibre As Long
 
    'Recherche de la ligne disponible sur Stock
    '------------------------------------------
    Sheets("Stock").Select
    Set Cellule = Range("A65536").End(xlUp)
    LigneLibre = Cellule.Row + 1
 
    'Analyse des commandes
    '---------------------
    Sheets("COMMANDE").Select
 
    For Each Cellule In Range("Achat")
        Ligne = Ligne + 1
        
        If Cells(Ligne, 4) = "Oui" Then
            [COLOR=red]Cells(Ligne, 4) = "Non"
[/COLOR]            Sheets("STOCK").Cells(LigneLibre, 1) = Cells(Ligne, 1)
            Sheets("STOCK").Cells(LigneLibre, 2) = Cells(Ligne, 2)
            Sheets("STOCK").Cells(LigneLibre, 3) = Cells(Ligne, 3)
            LigneLibre = LigneLibre + 1
        End If
 
    Next
End Sub
 

Pièces jointes

  • Fichier_forum_-_Mai_2007 - Marmotte.zip
    16.4 KB · Affichages: 23
  • Fichier_forum_-_Mai_2007 - Marmotte.zip
    16.4 KB · Affichages: 23
  • Fichier_forum_-_Mai_2007 - Marmotte.zip
    16.4 KB · Affichages: 19
Dernière édition:

dixit

XLDnaute Impliqué
Re : Copier puis supprimer des données d'une feuille suivant condition

re
voici une version avec commentaires dans la macro
(j'ai supprimé la ligne
Application.CutCopyMode = False
qui traînait dans la version précédente sans utilité)
 

Pièces jointes

  • ED75853Graziella44-transfert-.xls
    40 KB · Affichages: 84
  • ED75853Graziella44-transfert-.xls
    40 KB · Affichages: 87
  • ED75853Graziella44-transfert-.xls
    40 KB · Affichages: 111

Discussions similaires

Statistiques des forums

Discussions
312 479
Messages
2 088 744
Membres
103 944
dernier inscrit
Stbj