Couper travaux réalisés avec VB

Laura -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je vous explique mon problème.

Mon chef ma demandé de lui créer un échéncier qui lui permet de noter les travaux qu'ils donnent à faire aux personnes du service.

Une fois le travail réalisé, il marque "ok" à côté de la ligne. J'aimerai que par un bouton dactualisation, tous les travaux réalisés se rangent dans un base sur une autre feuille.

Je l'ait fait en macro enregsitre, mais je n'arrive pas plus loin.

Il faudrait que les lignes où il y a marqué "ok" se coupent du premier tableau pour se ranger dans l'autre base.

je ne sais pas si ca peut marcher avec un next i for i !!!

Voila mon enregistrement :

Range(Cells(21, 1), Cells(20 + Range("compteur6"), 8)).Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("G21"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal


Rows("21:21").Select
Selection.Cut
Sheets("Feuil1").Select
Range("A7").Select
ActiveSheet.Paste
Sheets("Echeancier").Select
Rows("22:22").Select
Selection.Cut
Sheets("Feuil1").Select
Rows("8:8").Select
ActiveSheet.Paste
Sheets("Echeancier").Select
Rows("21:22").Select
Range("A22").Activate
Selection.Delete Shift:=xlUp




Si quelqu'un peut m'aider, merci !

Cordialement

Laura
A voir également:

2 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Pour commencer, donnes nous ta version d'Excel, ensuite dans un prochain post donnes nous un exemple de fichier ressemblant, avec les véritables non d'onglet et colonnes, sans note confidentielles ou noms que tu peux remplacer par des toto et titi etc ... dans quelle colonne marques tu OK !

le code peut s'écrire plus simplement

le lien pour joindre ton exemple

https://www.cjoint.com/

A+
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Voilà une macro qu'il faut adapter. Ici le premier tableau commence sur la ligne 2 à colonne B jusqu'à la colonne E. Le tableau de report démarre de la même colonne B. Il ne faut pas de ligne vide entre la première et la dernière ligne du premier tableau.

Sub MajTableau()
Dim wsIn As Worksheet
Dim wsOut As Worksheet
Dim ligIn As Long
Dim ligOut As Long

    'Onglet source. Peut être noté : Worksheets("nomdelafeuille")
    Set wsIn = Worksheets(1)
    'Onglet destination. Peut être noté : Worksheets("nomdelafeuille")
    Set wsOut = Worksheets(2)
    
    'Première ligne du tableau
    ligIn = 2
    
    With wsIn
        'Ici le tableau commence colonne B
        While .Range("B" & ligIn).Value <> ""
            'La colonne E pour le "OK"
            If UCase(.Range("E" & ligIn).Value) = "OK" Then
                'Première ligne du tableau de destination dans le 2ème onglet
                ligOut = 2
                'Recherche de la première ligne vide
                While wsOut.Range("B" & ligOut).Value <> ""
                    ligOut = ligOut + 1
                Wend
                'Copie de la ligne
                .Range("B" & ligIn & ":E" & ligIn).Copy Destination:=wsOut.Range("B" & ligOut)
                'Supression de la ligne
                .Rows(ligIn).Delete
                'Pour revenir sur la ligne précédente
                ligIn = ligIn - 1
            End If
        'on teste la ligne suivante
        ligIn = ligIn + 1
        Wend
    End With
    
End Sub


Bon courage

;o)
0