Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Suppression automatique de lignes et extractions de lignes

  • Initiateur de la discussion Initiateur de la discussion llcoolf
  • 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 !

L

llcoolf

Guest
Bonjour aux membres du forum,

ceci est mon premier message sur ce forum.
Je gère un fichier excel (données financières) avec des données que je rapatrie quotidiennement.

1- J'aimerais dans ce fichier de bases supprimer les lignes dont la valeur est différente de 0 dans la colonne B (code annulation) et toutes les lignes de la colonne D (Code opération) dont la valeur est différente de AC ou VC .

2- Je voudrais extraire les lignes avec les intitulés du feuillet de départ dans d'autres feuillets dans le même classeur selon le n° de compte (colonne I : code dossier).

Je vous joins mon fichier de travail (j'utilise office 2007) et vous remercie par avance.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Suppression automatique de lignes et extractions de lignes

Bonjour llcoolf,

Le fichier ci-joint répond à ta 1ère question.

Pour la seconde, je n'ai pas compris le problème : peux-tu me le préciser avec un exemple, STP ?

Cordialement.
 

Pièces jointes

Re : Suppression automatique de lignes et extractions de lignes

Bonjour llcoolf,

Le fichier ci-joint répond à ta 1ère question.

Pour la seconde, je n'ai pas compris le problème : peux-tu me le préciser avec un exemple, STP ?

Cordialement.

Merci de ta réponse, c'est très gentil.

En fait j'aimerais ensuite extraire les lignes du fichier Flop selon le code dossier dans un autre feuillet mais toujours dans le même classeur.

Voici un exemple joint.
 

Pièces jointes

Re : Suppression automatique de lignes et extractions de lignes

Merci de ta réponse, c'est très gentil.

En fait j'aimerais ensuite extraire les lignes du fichier Flop selon le code dossier dans un autre feuillet mais toujours dans le même classeur.

Voici un exemple joint.

Voici donc ton fichier complété.

J'ai rajouté un sous-programme "Extraction" dans le module de code 1.

Espérant avoir répondu à ton attente.

Cordialement.
 

Pièces jointes

Re : Suppression automatique de lignes et extractions de lignes

Voici donc ton fichier complété.

J'ai rajouté un sous-programme "Extraction" dans le module de code 1.

Espérant avoir répondu à ton attente.

Cordialement.

Excuses moi de te déranger Papou-net mais je ne trouve pas le sous programme dans le fichier joint.

Je te remercie encore de tes efforts
 
Re : Suppression automatique de lignes et extractions de lignes

Excuses moi de te déranger Papou-net mais je ne trouve pas le sous programme dans le fichier joint.

Je te remercie encore de tes efforts

Tu ne me déranges pas, c'est moi qui est désolé pour la mauvaise manip : j'ai dû recréer le sous-programme car il a disparu dans les arcanes de ma bécane.

Même compressé, le fichier au format xlsm ne passe pas donc je t'envoie le listing, tu n'auras plus qu'à le copier-coller dans ton module de code :

Code:
Sub extraction()
Application.ScreenUpdating = False
With Feuil1
  nomsfeuilles = ""
  ' Récupère les noms des feuilles existantes
  For Each sh In Sheets
    nomsfeuilles = nomsfeuilles & sh.Name & " "
  Next
  ' Vérifie si les feuilles existent, sinon on les crée
  For Each cel In .Range("I2:I" & .Range("I65536").End(xlUp).Row)
    If InStr(nomsfeuilles, CStr(cel.Value)) = 0 Then
      Worksheets.Add after:=Worksheets(Sheets.Count)
      ActiveSheet.Name = CStr(cel.Value)
      nomsfeuilles = nomsfeuilles & CStr(cel.Value) & " "
      ' Recopie la ligne d'en-tête
      Feuil1.Rows(1).Copy
      ActiveSheet.Paste Destination:=Range("A1")
    End If
  Next
  ' Recopie les lignes en fonction des codes dossiers
  For Each cel In .Range("I2:I" & .Range("I65536").End(xlUp).Row)
    nomfeuille = CStr(.Cells(cel.Row, 9))
    lg = Sheets(nomfeuille).Range("A65536").End(xlUp).Row + 1
    Sheets(nomfeuille).Activate
    .Rows(cel.Row).Copy
    ActiveSheet.Paste Destination:=Range("A" & lg)
  Next
End With
Application.CutCopyMode = True
Application.ScreenUpdating = True
End Sub

Espérant t'avoir aidé.

Cordialement.
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
38
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…