Excel actualisation des feuilles
Résolu
hinen
Messages postés
2
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Salut, salut j'ai un petit problème avec excel je m'explique:
J'ai un premier tableau qui liste mes commandes, en suite a l'aide d'un menu déroulant je choisi la machine que je veux utiliser pour produire ma pièce ce qui envoi la ligne dans une autre feuille selon la machine (3 feuilles machines différentes)à l'aide d'une maccro.
Le seul problème est que les feuilles machines ne n'actualisent pas (si je sélectionne la machine A puis décide de sélectionner la machine B, la ligne qui a été copiée dans la feuille de la machine A n'est pas supprimée, idem si je supprime une commande dans ma première liste elle reste dans la feuille machine correspondante).
Est-ce que quelqu'un s'y connait et pourrait me filer une petit coup de main ??
voila ma maccro actuelle
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "VF 3" Then
With Sheets("VF3")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "VF 2" Then
With Sheets("VF2")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "SL 20" Then
With Sheets("SL20")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
End Sub
Merci d'avance de l'interet que vous porterez a mon probleme.
J'ai un premier tableau qui liste mes commandes, en suite a l'aide d'un menu déroulant je choisi la machine que je veux utiliser pour produire ma pièce ce qui envoi la ligne dans une autre feuille selon la machine (3 feuilles machines différentes)à l'aide d'une maccro.
Le seul problème est que les feuilles machines ne n'actualisent pas (si je sélectionne la machine A puis décide de sélectionner la machine B, la ligne qui a été copiée dans la feuille de la machine A n'est pas supprimée, idem si je supprime une commande dans ma première liste elle reste dans la feuille machine correspondante).
Est-ce que quelqu'un s'y connait et pourrait me filer une petit coup de main ??
voila ma maccro actuelle
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "VF 3" Then
With Sheets("VF3")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "VF 2" Then
With Sheets("VF2")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then
If Target.Value = "SL 20" Then
With Sheets("SL20")
LigVide = .Range("B65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -11).Value
.Cells(LigVide, 2) = Target.Offset(0, -10).Value
.Cells(LigVide, 3) = Target.Offset(0, -9).Value
.Cells(LigVide, 4) = Target.Offset(0, -8).Value
.Cells(LigVide, 5) = Target.Offset(0, -7).Value
.Cells(LigVide, 6) = Target.Offset(0, -6).Value
.Cells(LigVide, 7) = Target.Offset(0, -5).Value
.Cells(LigVide, 8) = Target.Offset(0, -4).Value
.Cells(LigVide, 9) = Target.Offset(0, -3).Value
.Cells(LigVide, 10) = Target.Offset(0, -2).Value
.Cells(LigVide, 11) = Target.Offset(0, -1).Value
End With
End If
End If
End Sub
Merci d'avance de l'interet que vous porterez a mon probleme.
3 réponses
-
Merci, michel je n'est pas pris le temps de vérifier ta maccro mais si quelqu'un a le même problème que moi une solution est ici :
https://www.excel-downloads.com/threads/copier-ligne-sur-une-autre-feuille-avec-condition.84169/#post701184 -
Bonjour,
j'ai "un peu" allégé tout ça!
dans un module:Sub reporter(onglet, tablo) Dim ligvide As Long With Sheets(onglet) ligvide = .Range("B65536").End(xlUp).Row + 1 .Range(.Cells(ligvide, 1), .Cells(ligvide, 10)) = tablo End With End Sub
et dans le module feuil concernéPrivate Sub Worksheet_Change(ByVal Target As Range) Dim tablo If Not Intersect(Target, Range("L6:L65536")) Is Nothing Then tablo = Range(Cells(Target.Row, 1), Cells(Target.Row, 10)) reporter Target.Value, tablo End If End Sub
Bon WE
-
MERCI DE M'AVOIR FAIT TRAVAILLE POUR RIEN
RAS LE BOL DES GENS COMME TOI QUI METTENT LEURS PROBLEMES UN PEU PARTOUT SANS LE DIRE, LE TOUT LE VENDREDI AVANT DE PARTIR EN WE ET DE REGARDER LES PROPOSITIONS DES CITRONS PRESSES EN REVENANT AU BOULOT
--