Je souhaite créer un fichier dans lequel je pourrai âpres appui sur un bouton , copier la ligne de la feuille (Etape1) sur une autre feuille(Etape 2) sur la dernière ligne (première disponible) et faire disparaître sur la feuille initiale(Couper-Coller).
Ma question:, est-ce que le bouton(ou case a cocher) peut être lié à la ligne et se déplacer avec ou est ce qu'il vaut mieux faire une colonne de bouton dans chaque feuille et seule la ligne se transfère .( exemple sur mon fichier ligne [A3:G3] , ou ligne [A3:H3]avec le bouton ou même dans l'idéal la ligne complète Ligne 3 )
L'idée de mon fichier, est de pouvoir stocker des lignes sur la feuille 1(Etape1 sur mon fichier) et les envoyer sur la feuille 2(Etape 2) âpres un appui sur le bouton " traité"(tache de la feuille 1 effectuée), puis ainsi de suite sur feuille 2, feuille 3, ce qui permettra de valider son transfert qu'âpres l'accomplissement de la tache de la feuille (validé par le bouton)
Je ne sais pas si mes explications sont très claires.
Je reste disponible pour apporter des précisions.
Merci à tous pour le temps accordé...
Ps:J'ai lu d'autres discussions qui peuvent ressembler mais j'ai du mal a adapter a mon cas...
Bonjour Samsampaname,
On peut se passer de boutons, un clic sur une cellule peut déclencher une macro événementielle.
Dans la PJ il suffit de cliquer sur une cellule de la colonne H pour que la ligne soit transférée sur la page suivante, et supprimée quand l'action est finie.
Un essai en PJ, avec :
Dans chaque feuille la macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H3:H1000]) Is Nothing Then
If Target <> "" Then CouperColler ActiveSheet.Name, Target.Address
End If
End Sub
qui renvoie le nom de la feuille et la cellule cliquée à cette macro :
Code:
Sub CouperColler(Feuille, Cellule)
F = Array("Etape 1", "Etape 2", "Etape 3"...
Bonjour Samsampaname,
On peut se passer de boutons, un clic sur une cellule peut déclencher une macro événementielle.
Dans la PJ il suffit de cliquer sur une cellule de la colonne H pour que la ligne soit transférée sur la page suivante, et supprimée quand l'action est finie.
Un essai en PJ, avec :
Dans chaque feuille la macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H3:H1000]) Is Nothing Then
If Target <> "" Then CouperColler ActiveSheet.Name, Target.Address
End If
End Sub
qui renvoie le nom de la feuille et la cellule cliquée à cette macro :
Code:
Sub CouperColler(Feuille, Cellule)
F = Array("Etape 1", "Etape 2", "Etape 3", "Etape 4", "Etape Finale", "")
For N = 0 To 5
If Feuille = F(N) Then Fcollage = F(N + 1)
Next N
If Fcollage = "" Then Exit Sub ' Car feuille Etape Finale où on ne copie colle pas.
L = Sheets(Feuille).Range(Cellule).Row ' Ligne à copier
DL = 1 + Sheets(Fcollage).[H65000].End(xlUp).Row ' Ligne où coller
Sheets(Fcollage).Range("A" & DL & ":H" & DL) = Sheets(Feuille).Range("A" & L & ":H" & L).Value ' Copier Coller valeurs
Sheets(Feuille).Cells(L, 1).EntireRow.Delete ' Supprimer ligne
End Sub
Bonjour Samsampaname,
On peut se passer de boutons, un clic sur une cellule peut déclencher une macro événementielle.
Dans la PJ il suffit de cliquer sur une cellule de la colonne H pour que la ligne soit transférée sur la page suivante, et supprimée quand l'action est finie.
Un essai en PJ, avec :
Dans chaque feuille la macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H3:H1000]) Is Nothing Then
If Target <> "" Then CouperColler ActiveSheet.Name, Target.Address
End If
End Sub
qui renvoie le nom de la feuille et la cellule cliquée à cette macro :
Code:
Sub CouperColler(Feuille, Cellule)
F = Array("Etape 1", "Etape 2", "Etape 3", "Etape 4", "Etape Finale", "")
For N = 0 To 5
If Feuille = F(N) Then Fcollage = F(N + 1)
Next N
If Fcollage = "" Then Exit Sub ' Car feuille Etape Finale où on ne copie colle pas.
L = Sheets(Feuille).Range(Cellule).Row ' Ligne à copier
DL = 1 + Sheets(Fcollage).[H65000].End(xlUp).Row ' Ligne où coller
Sheets(Fcollage).Range("A" & DL & ":H" & DL) = Sheets(Feuille).Range("A" & L & ":H" & L).Value ' Copier Coller valeurs
Sheets(Feuille).Cells(L, 1).EntireRow.Delete ' Supprimer ligne
End Sub
Bonjour Samsampaname,
On peut se passer de boutons, un clic sur une cellule peut déclencher une macro événementielle.
Dans la PJ il suffit de cliquer sur une cellule de la colonne H pour que la ligne soit transférée sur la page suivante, et supprimée quand l'action est finie.
Un essai en PJ, avec :
Dans chaque feuille la macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H3:H1000]) Is Nothing Then
If Target <> "" Then CouperColler ActiveSheet.Name, Target.Address
End If
End Sub
qui renvoie le nom de la feuille et la cellule cliquée à cette macro :
Code:
Sub CouperColler(Feuille, Cellule)
F = Array("Etape 1", "Etape 2", "Etape 3", "Etape 4", "Etape Finale", "")
For N = 0 To 5
If Feuille = F(N) Then Fcollage = F(N + 1)
Next N
If Fcollage = "" Then Exit Sub ' Car feuille Etape Finale où on ne copie colle pas.
L = Sheets(Feuille).Range(Cellule).Row ' Ligne à copier
DL = 1 + Sheets(Fcollage).[H65000].End(xlUp).Row ' Ligne où coller
Sheets(Fcollage).Range("A" & DL & ":H" & DL) = Sheets(Feuille).Range("A" & L & ":H" & L).Value ' Copier Coller valeurs
Sheets(Feuille).Cells(L, 1).EntireRow.Delete ' Supprimer ligne
End Sub
Petite question Sylvanu si tu es encore là ...
Lorsque j'alimente ma feuille 1 de nouvelles lignes , je copie de la colonne 1 à 7 ma ligne et je rajoute la commande de la cellule en colonne H correspondante... Je peux donc copier le code pour toutes les cellules de la colonne H ? je fais erreur?
Re,
Sans rien toucher, la macro s' exécutera pour toutes les cellules de H3 à H10000.
Et ce sur toutes les feuilles. Il n'y a donc pas de code à copier.
Re,
Sans rien toucher, la macro s' exécutera pour toutes les cellules de H3 à H10000.
Et ce sur toutes les feuilles. Il n'y a donc pas de code à copier.
C’est ce que je comprenais a ton code mais ça n'avait pas fonctionné âpres l'ajout d'une nouvelle ligne, c'est sûrement moi qui ai fait une mauvaise manip.