Couper travaux réalisés avec VB
Laura
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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
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:
- Couper travaux réalisés avec VB
- Couper une video - Guide
- Couper mp3 - Guide
- Couper une photo en 3 pour instagram - Guide
- Couper pdf - Guide
- Vb - Télécharger - Langages
2 réponses
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+
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+
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.
Bon courage
;o)
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)