deplacer une ligne sur autre onglet

  • Initiateur de la discussion Initiateur de la discussion mix770
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mix770

XLDnaute Impliqué
Bonjour,
je vais de nouveau faire appel aux pro je suis bloqué j'ai besoin d'une macro qui déplace la ligne sur l'onglet travaux en cours vers l'onglet travaux achevés quand le mot clôturé est inscrit dans la colonne état
merci à vous
cordialement
mix770
 

Pièces jointes

Re : deplacer une ligne sur autre onglet

Bonsoir mix770,

Essaie donc ce code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim adresse$, x&
    If Target.Column = 1 And Target.Count = 1 Then
        adresse = [A65000].End(xlUp).Address(1, 1)
        If Target.Address = adresse Then
            x = Target.Row
            Application.EnableEvents = False
            Range("A" & x & ":O" & x).Copy Target.Offset(1)
            Range("A" & x + 1).ClearContents
            Application.EnableEvents = True
        End If
    ElseIf Not Intersect(Target, [O:O]) Is Nothing And Target.Count = 1 Then
        If Target = "Cloturé" Then
            Range("A1:O" & Target.Row).Copy
            Sheets("travaux achevés").Select
            ActiveSheet.Range("A65000").End(xlUp).Select
            ActiveSheet.Paste
        End If
    End If
End Sub

A+
 
Re: Re : deplacer une ligne sur autre onglet

Bonsoir Fred0o,
merci beaucoup de ta réponse j'ai testé et quand je sélectionne un site j'ai une erreur nom ambigu détecté worksheet change
je suis largué avec les macros
merci du temps que tu me consacre
cordialement
 
Re : deplacer une ligne sur autre onglet

Bonsoir,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim adresse$, x&
If Target.Count > 1 Or Target.Row < 4 Then Exit Sub
x = Target.Row
Set c = Range("A" & x & ":O" & x)
Select Case Target.Column
    Case 1
        adresse = [A65000].End(xlUp).Address(1, 1)
        If Target.Address = adresse Then
            Application.EnableEvents = False
            c.Copy Target.Offset(1)
            c.Offset(1).ClearContents
            Application.EnableEvents = True
        End If
    Case 15
        If LCase(Target) = "cloturé" Then
            c.Copy Feuil1.Range("A65000").End(xlUp).Offset(1)
            Rows(x).Delete
        End If
    End Select
End Sub
Edit : bonsoir Fredoo 🙂
@Mix : cette macro annule est remplace la précédente !!!

A+
kjin
 
Dernière édition:
Re: Re : deplacer une ligne sur autre onglet

merci à vous,
alors en fait cela bloque sur ce VBA qui est celui de copie ligne
je vous envoi le fichier pour meilleur compréhension
cela bloque sur la première ligne "private sub"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim adresse$, x&
If Target.Column = 1 And Target.Count = 1 Then
adresse = [A65000].End(xlUp).Address(1, 1)
If Target.Address = adresse Then
x = Target.Row
Application.EnableEvents = False
Range("A" & x & ":O" & x).Copy Target.Offset(1)
Range("A" & x + 1).ClearContents
Application.EnableEvents = True
End If
ElseIf Not Intersect(Target, [O:O]) Is Nothing And Target.Count = 1 Then
If Target = "Cloturé" Then
Range("A1:O" & Target.Row).Copy
Sheets("travaux achevés").Select
ActiveSheet.Range("A65000").End(xlUp).Select
ActiveSheet.Paste
End If
End If
End Sub
 

Pièces jointes

Re : deplacer une ligne sur autre onglet

Bonsoir à tous,
J'aurais plutôt vu quelque chose comme :
VB:
'à mettre dans la feuille "Travaux en cours"
Private Sub Worksheet_Change(ByVal Target As Range)
	If Target.Count > 1 Or Target.Row < 4 Then Exit Sub
	If Not Intersect(Target, Range("O:O")) is nothing then
		If Target = "Clôturé" then
			Application.Screenupdating = False
			Application.CutCopyMode = xlCut
			Target.Entirerow.Copy
			Sheets("travaux achevés").Activate
			Nlgn=Sheets("travaux achevés"). Range("A65536").End(xlUp).Row
			Destination:=Sheets("travaux achevés").Range("A" & Nlgn + 1)
			Sheets("Travaux en cours").Activate
			Application.CutCopyMode = False
			Application.Screenupdating = True
		End If
	End If
End Sub
A+
 
Dernière édition:
Re: Re : deplacer une ligne sur autre onglet

bonjour à tous,
la fatigue à eu raison de moi hier, alors j'ai bien insérer le VBA dans un module comme indiqué dans #4, il copie dans l'onglet travaux achevés, le problème est qu'il copie le tableau entier et non la ligne renseignée clôturée, et le top serait qu'il déplace la ligne et non la copie
merci à vous, ce forum est vraiment riche par le sérieux et la qualité des membres
bien cordialement
MIx770
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
2 K
Retour