SUPPRESSION D'une ligne à partir d'une autre feuille

Résolu/Fermé
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018 - 15 sept. 2016 à 12:01
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018 - 16 sept. 2016 à 15:32
Bonjour,
En faite j'ai deux feuilles sur excell qui ont les mêmes données ,c'est juste que la première feuille a des colonnes de plus que l'autre. Et je veux quand je supprime une ligne sur la feuille 1 que ca se répercute sur la feuille 2.
merci d'avance
A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
15 sept. 2016 à 16:24
Bonjour,

« j'ai deux feuilles sur excell qui ont les mêmes données ,c'est juste que la première feuille a des colonnes de plus que l'autre.»

Pourquoi ne pas supprimer simplement la feuille 2 si toutes les données sont sur la feuille 1 ?
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
15 sept. 2016 à 16:36
en faite je code sur vba et jaimerais qu'une ligne de la feuille 2 soit supprimer automatiquement si elle a été supprimée sur la feuille 1.J'avais essayer d'insérer ce code mais ça marche pas:
Private Sub Worksheet_Change(ByVal Target As Range)

Sheets("LesSuivis").Range("A10:A").Value = Sheets("LesPlans").Range("A10:A").Value

End Sub
merci d'avance
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 16/09/2016 à 00:45
Bonjour,

Ça répond pas à ma question !

Essaies :
Private Sub Worksheet_Change(ByVal Target As Range)
  With Worksheets("LesPlans").UsedRange.Columns(1)  'source
    With .Resize(.Rows.Count + 1)
      Sheets("LesSuivis").Range(.Address).Value = .Value
    End With
  End With
End Sub


Cordialement
Patrice
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 09:29
Bonjour , je l'ai essayé mais ça supprime seulement la ligne de la premiere colonne de la feuille 2 et j'aimerais supprimer toute la ligne .En faite j'ai 53 colonnes sur la feuille 1 et 23 colonnes sur la feuille 2.
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 11:02
Private Sub Worksheet_Change(ByVal Target As Range)
With Worksheets("LesPlans").UsedRange 'source
With .Resize(.Rows.Count + 1)
Sheets("LesSuivis").Range(.Address).Value = .Value
End With
End With
End Sub
J'ai essayer avec ça aussi .il supprime la ligne comme je le voulais mais le problème en est qu'il ajoute toutes les colonnes de la feuille 1 dans feuille 2 .
J'aimerais écrire un code qui compare chaque ligne de la feuille 2 s'il est identique avec celui de la feuille 1 ,on supprime et sans ajouter les colonnes de la feuille 1 dans feuille 2
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 16/09/2016 à 11:09
Re,

Quand on ne pose pas la bonne question, il faut s'attendre à une réponse correspondante !!!

« je l'ai essayé mais ça supprime seulement la ligne de la première colonne de la feuille 2 » Non !!! : ça ne supprime rien, ça recopie les valeurs de la première colonne sur la feuille 2 !

Pour obtenir une réponse correcte il faut une question claire et précise :
- est-ce la ligne entière qui est supprimée ?
- combien de lignes peux-tu supprimer simultanément ? une seule ?
- faut-il que les formats soient conservés ?
- les 23 informations de la ligne de la feuille 2 sont-elles identiques à celles de la feuille 1 ?
- si oui, à quoi sert la feuille 2 ?
- as-tu l'intention d'ajouter des informations qui ne sont pas sur la feuille 1 ?
- ...

Voici un code qui recopie les 23 colonnes de la feuille 1 sur la feuille 2 :
Private Sub Worksheet_Change(ByVal Target As Range)
  With Worksheets("LesPlans").UsedRange.Columns(1)  'source
    With .Resize(.Rows.Count + 1, 23)
      Sheets("LesSuivis").Range(.Address).Value = .Value
    End With
  End With
End Sub

Mais dans ce cas, la feuille 2 ne sert à rien !
On obtient la même chose avec un plan sur la feuille 1 (commande Grouper)
Et si tiens vraiment à cette feuille, une simple formule matricielle aurait le même effet.


Cordialement
Patrice
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 11:35
Excusez moi j'étais un peu perdu. Je m'explique
_la ligne entière a été supprimée
_en faite J'ai un bouton supprimer sur l'interface et si je clique sur cet bouton ça m'affiche un formulaire et c'est à partir de ce formulaire que je dois choisir le plan à supprimer qui me renvoie toutes les infos concernant à ce plan.
_Je veux supprimer une seule ligne
_Je veux que les formats soient conservés
-il y'a des infos qui sont dans la feuille 2 et ne le sont pas dans la feuille 1
_la feuille 2 c'est juste la suivi de la feuille 1
_Je veux rien ajouter sur les feuilles
.Pourrais je vous envoyer mon fichier ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
16 sept. 2016 à 11:52
Re,

« -il y'a des infos qui sont dans la feuille 2 et ne le sont pas dans la feuille 1 » Lequelles ?
« Pourrais je vous envoyer mon fichier ? » oui via : https://www.cjoint.com/
Ici : Comment utiliser Cjoint

Cdlt
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 11:59
http://www.cjoint.com/c/FIqj7HtGwDN voici le lien merci d'avance
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
16 sept. 2016 à 14:35
Bonjour,

Avec le fichier c'est bien plus facile à comprendre.

Une solution assez simpliste (mais déconseillée) pourrait être :
'Suppression des données si confirmation
If (Confirmation = vbYes) Then
    Worksheets(2).Rows(Selection.Row).Delete Shift:=xlUp
    Rows(Selection.Row).Delete Shift:=xlUp
    Unload Me
End If


Un code qui se base sur l'utilisation de la cellule active est une très grande source de dysfonctionnements !
L'emploi de Select, ActiveCell, Selection, ... est à bannir, il est préférable d'utiliser une référence à un objet déclaré qu'il soit actif ou non.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
16 sept. 2016 à 14:37
PS : Est-ce normal qu'il y ait si peu de différences entre les lignes 41 et 43 ???
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 15:09
sisi je viens de constater que la différence n'est pas grande .je vais essayer de tester pr voir.
merciii
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 15:20
j'ai essayé mais ça ne marche toujours pas.
merci pour ton aide
0
mir.kan Messages postés 178 Date d'inscription mardi 6 septembre 2016 Statut Membre Dernière intervention 26 avril 2018
16 sept. 2016 à 15:32
c'est bon j'avais fait une erreur .
merci encoree pour votre aide
0