Excel actualisation des feuilles

Résolu/Fermé
hinen Messages postés 2 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 18 mai 2009 - 15 mai 2009 à 09:57
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 18 mai 2009 à 09:36
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.
A voir également:

3 réponses

hinen Messages postés 2 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 18 mai 2009 1
18 mai 2009 à 09:21
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
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
15 mai 2009 à 13:59
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
18 mai 2009 à 09:36
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
--
0