Macro excel
Résolu
seb76
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous, je voudrai réaliser un outil de gestion via excel, jusque la pour le tableau pas de problème mais pour la macro aïe....
Je vous le donne en français si quelqu'un pouvais me le traduire en VBA parceque la je rame et c'est assez urgent.
j'ai deux feuilles l'une qui sera rempli par les personnes concernées et l'autre pour archiver qui sera en lecture seule sauf pour la macro bien sur.
Ce que je souhaiterai c'est une macro qui quand elle apercois dans la feuille 1 le mot "achevée" dans la colonne M mais sur n'importe quelle ligne
copie la ligne dans l'autre feuille sur la première ligne vide disponible, supprime la ligne dans la feuille numéro 1, puis inscrit la date de modification dans la colonne N de la 2ème feuille
il y'a une autre condition aussi les colonnes de la feuille 2 ne coresponde pas exactement à la feuille 1 c'est a dire il faut qu'elle copie: colonne I vers G; J vers H; K vers I; L vers J; N vers K; O vers L; P vers M puis ajoute la date de modification dans la colonne N. De A à F les deux feuilles ont les même colonnes.
Voilà j'espère que ce sera assez compréhensible pour vous je débute dans excel et j'ai beau regarder sur les forum je n'arrive pas à trouver la solution peux être aussi ce n'est pas possible mais je ne suis pas convaincu. Si c'est le cas merci de m'avertir.
Merci d'avance pour votre aide elle m'a souvent été précieuse.
Je vous le donne en français si quelqu'un pouvais me le traduire en VBA parceque la je rame et c'est assez urgent.
j'ai deux feuilles l'une qui sera rempli par les personnes concernées et l'autre pour archiver qui sera en lecture seule sauf pour la macro bien sur.
Ce que je souhaiterai c'est une macro qui quand elle apercois dans la feuille 1 le mot "achevée" dans la colonne M mais sur n'importe quelle ligne
copie la ligne dans l'autre feuille sur la première ligne vide disponible, supprime la ligne dans la feuille numéro 1, puis inscrit la date de modification dans la colonne N de la 2ème feuille
il y'a une autre condition aussi les colonnes de la feuille 2 ne coresponde pas exactement à la feuille 1 c'est a dire il faut qu'elle copie: colonne I vers G; J vers H; K vers I; L vers J; N vers K; O vers L; P vers M puis ajoute la date de modification dans la colonne N. De A à F les deux feuilles ont les même colonnes.
Voilà j'espère que ce sera assez compréhensible pour vous je débute dans excel et j'ai beau regarder sur les forum je n'arrive pas à trouver la solution peux être aussi ce n'est pas possible mais je ne suis pas convaincu. Si c'est le cas merci de m'avertir.
Merci d'avance pour votre aide elle m'a souvent été précieuse.
A voir également:
- Macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
23 réponses
c'est bon les gars je suis parvenu à mes fin et ca fonctionne nikel ca donne ca:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 17).Value = "ok" Then
Dim lig As Long
Sheets("archive").Select
ActiveSheet.Unprotect
With Sheets("archive")
lig = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1
.Cells(lig, 1).Resize(1, 6).Value = Cells(Target.Row, 1).Resize(1, 6).Value
.Cells(lig, 7).Resize(1, 4).Value = Cells(Target.Row, 9).Resize(1, 4).Value
.Cells(lig, 11).Resize(1, 3).Value = Cells(Target.Row, 14).Resize(1, 3).Value
.Cells(lig, 14).Resize(1, 1).Value = Date
Cells(Target.Row, 1).EntireRow.Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True
ActiveWorkbook.Save
End With
End If
End Sub
et une macro pour le trie de la feuille archive par numéro avec un raccourci dans la barre d'outil:
Option Explicit
Sub trier_par_numéro_de_commande__Ctrl_t()
'
' trier_par_numéro_de_commande__Ctrl_t Macro
' Macro enregistrée le 18/10/2007 par a672700
'
' Touche de raccourci du clavier: Ctrl+t
'
ActiveSheet.Unprotect
Cells.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True
End Sub
Merci beaucoup pour votre aide à charge de revanche.
A+
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 17).Value = "ok" Then
Dim lig As Long
Sheets("archive").Select
ActiveSheet.Unprotect
With Sheets("archive")
lig = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1
.Cells(lig, 1).Resize(1, 6).Value = Cells(Target.Row, 1).Resize(1, 6).Value
.Cells(lig, 7).Resize(1, 4).Value = Cells(Target.Row, 9).Resize(1, 4).Value
.Cells(lig, 11).Resize(1, 3).Value = Cells(Target.Row, 14).Resize(1, 3).Value
.Cells(lig, 14).Resize(1, 1).Value = Date
Cells(Target.Row, 1).EntireRow.Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True
ActiveWorkbook.Save
End With
End If
End Sub
et une macro pour le trie de la feuille archive par numéro avec un raccourci dans la barre d'outil:
Option Explicit
Sub trier_par_numéro_de_commande__Ctrl_t()
'
' trier_par_numéro_de_commande__Ctrl_t Macro
' Macro enregistrée le 18/10/2007 par a672700
'
' Touche de raccourci du clavier: Ctrl+t
'
ActiveSheet.Unprotect
Cells.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True
End Sub
Merci beaucoup pour votre aide à charge de revanche.
A+