Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 03/07/2009, 22h13   #1 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Supprimer ligne si en VBA excel

Bonjour a tous,

J'ai besoin de votre aide sur ce problème.

J'importe souvent un fichier texte dans un fichier Excel, car je dois le travailler souvent.

Dans la feuille "Base de donnée", j'ai l'importation du fichier TXT, et dans la feuille Trie, j'ai des numéro un en dessous de l'autre.

Ce que je voudrais, c'est qu'à chaque numéro de la feuille de trie, qu'il supprime les lignes de la feuille "Base de donnée".

Exemple:

Feuille de Trie:
01517
01521



Feuille base de donnée:
01517 G1514013700 606 5814 319062609111301230ND$$10.63 5062409N
01517 G1714013650 837 9827 619062609111301230ND$$20.63 5062409N
01517 G3014013630 537 1498 75062609111301230ND$$2.50 5062409N
01517 G3714013690 148 482 31062609111301230ND$$1.03 5062409N
01518 G1514013830 821 7861 418062609111301230ND$$13.93 5062409N
01518 G1714013720 280 1963 218062609111301230ND$$7.27 5062409N
01518 G1714014070 544 5994 378062609111301230ND$$12.60 5062409N
01518 G3014013800 569 1470 84062609111301230ND$$2.80 5062409N
01518 G3714013740 186 674 37062609111301230ND$$1.23 5062409N
01519 G1514013790 403 4095 249062609111301230ND$$8.30 5062409N
01519 G1714014060 504 5687 458062609111301230ND$$15.27 5062409N
01519 G1714014180 88 1175 135062609111301230ND$$4.50 5062409N
01519 G3014013780 365 832 50062609111301230ND$$1.67 5062409N
01519 G3714013840 120 310 34062609111301230ND$$1.13 5062409N
01520 G1514013870 681 8466 424062609111301230ND$$14.13 5062409N
01520 G1714013930 578 6813 415062609111301230ND$$13.83 5062409N
01520 G1714014150 263 1980 199062609111301230ND$$6.63 5062409N
01520 G3014014270 576 2008 107062609111301230ND$$3.57 5062409N
01520 G3714013850 190 603 51062609111301230ND$$1.70 5062409N
01521 G1514014020 486 4437 241062609111301230ND$$8.03 5062409N


Donc dans la feuille base de donnée, toutes les lignes qui débutent par 01517 et 01521 seront supprimées.

Comment faire S.V.P?

Merci encore pour votre aide

matrix
Fichiers attachés
Type de fichier : zip test txt.zip (16,3 Ko, 10 affichages)
matrix est déconnecté   Réponse avec citation
ANNONCES
Vieux 03/07/2009, 22h36   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de Robert
 
Date d'inscription: février 2005
Localisation: Sète
Messages: 3 864
Par défaut Re : Supprimer ligne si en VBA excel

Bonjour Matrix, bonjour le forum,

je te propose la macro suivante :

Code:
Sub Macro1()
Dim t As Worksheet, b As Worksheet 'déclare les varoavles t et d (les onglets Trie et Base de donné)
Dim cel As Range 'décalre la variable cel (CELlule)
Dim vr As String 'déclare la variaable vr (Valeur Recherchée)
Dim x As Long 'déclare la variable x
 
Application.ScreenUpdating = False 'masque les changements à l'écran
Set t = Sheets("Trie") 'définit la variable t
Set b = Sheets("Base de donnée") 'définit la variable b
For Each cel In t.Range("A1:A" & t.Range("A65536").End(xlUp).Row) 'boucle 1 : sur toutes les cellules éditée cel de la colonne A de l'onglet "Trie"
    vr = cel.Value 'définit la variable cel
    For x = b.Range("A65536").End(xlUp).Row To 1 Step -1 'boucle 2 : inversée sur toutes les cellules éditée de la colonne A de l'onglet "Base de donnée"
        If Left(Cells(x, 1), 5) = vr Then Rows(x).Delete 'si les 5 premiers caractères correspondent à la variable vr, supprime la ligne
    Next x 'prochaine cellules de la boucle 2
Next cel 'prochaine cellule de la boucle 1
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
__________________
À plus

Robert
Robert est déconnecté   Réponse avec citation
Vieux 03/07/2009, 23h09   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de bhbh
 
Date d'inscription: juin 2007
Localisation: Nouméa
Messages: 4 136
Par défaut Re : Supprimer ligne si en VBA excel

Bonsoir,

Bonsoir, Robert...

une autre variante..

Code:
Sub suppr()
Dim Cel As Range
Dim Lignes As Object
Dim I As Long
Application.ScreenUpdating = False
Set Lignes = CreateObject("Scripting.Dictionary")
With Sheets("Trie")
    For Each Cel In .Range("A1:A" & .[A65000].End(xlUp).Row)
        tmp = tmp & "," & Cel.Value
    Next Cel
End With
With Sheets("Base de donnée")
    For Each Cel In .Range("A1:A" & .[A65000].End(xlUp).Row)
        If InStr(1, tmp, Left(Cel, 5)) > 0 Then _
            Lignes.Item(Cel.Row) = Cel.Row
    Next Cel
End With
temp = Application.Transpose(Lignes.Items)
For I = UBound(temp) To LBound(temp) Step -1
    Rows(temp(I, 1)).Delete
Next I
End Sub
__________________
Versions utilisées : 2003, 2007
Supportez une équipe

Vos neurones chauffent? un peu de musique, pour ventiler....

Nouméa
bhbh est déconnecté   Réponse avec citation
Vieux 03/07/2009, 23h34   #4 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Re : Supprimer ligne si en VBA excel

Merci beaucoup à tous.

Les 2 options sont super.

Merci beaucoup.
matrix est déconnecté   Réponse avec citation
Vieux 03/07/2009, 23h41   #5 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2008
Messages: 85
Par défaut Re : Supprimer ligne si en VBA excel

Bonjour à tous,

Je ne sais pas si vous avez remarqué que les deux macros proposées par "Robert" et "bhbh" suppriment les lignes qui commencent aussi par 01543 , 03201 , 03210... Mais il faut reconnaitre à l'élaboration très rapide de ces macros...
hbenalia est connecté maintenant   Réponse avec citation
Vieux 03/07/2009, 23h54   #6 (permalink)
XLDnaute Barbatruc
 
Avatar de bhbh
 
Date d'inscription: juin 2007
Localisation: Nouméa
Messages: 4 136
Par défaut Re : Supprimer ligne si en VBA excel

Re-,

dans le fichier, regarde dans l'onglet "Trie",

on a compris qu'il fallait supprimer toutes les lignes qui commençaient par les nombres écrits dans cet onglet....
__________________
Versions utilisées : 2003, 2007
Supportez une équipe

Vos neurones chauffent? un peu de musique, pour ventiler....

Nouméa
bhbh est déconnecté   Réponse avec citation
Vieux 04/07/2009, 00h24   #7 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2008
Messages: 85
Par défaut Re : Supprimer ligne si en VBA excel

Bonjour,

Merci pour l'indication et merci pour la macro....

Citation:
Envoyé par bhbh Voir le message
Re-,

dans le fichier, regarde dans l'onglet "Trie",

on a compris qu'il fallait supprimer toutes les lignes qui commençaient par les nombres écrits dans cet onglet....
hbenalia est connecté maintenant   Réponse avec citation
Vieux 04/07/2009, 00h32   #8 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Re : Supprimer ligne si en VBA excel

Oups désolé

Dernière modification par matrix ; 04/07/2009 à 01h35.
matrix est déconnecté   Réponse avec citation
Vieux 04/07/2009, 01h35   #9 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Re : Supprimer ligne si en VBA excel

Petite question encore.

Dans la rangé a de la feuille trie, comment faire en sorte que le chiffre indiqué, exemple 1530, devienne en format texte en 5 caracteres.

ex: 1530 deviens 01530.

s'il a déja 5 caracteres, ex 58350, il reste pareille.

JMP
matrix est déconnecté   Réponse avec citation
Vieux 04/07/2009, 08h58   #10 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: septembre 2007
Messages: 3 299
Par défaut Re : Supprimer ligne si en VBA excel

Bonjour,

Code:
Sub supLignes()
  Application.ScreenUpdating = False
  Set Dico = CreateObject("Scripting.Dictionary")
  For Each c In Sheets("trie").[A1].CurrentRegion:  Dico(c.Text) = "":  Next c
  i = 1
  Set f = Sheets("Base de donnée")
  Do While f.Cells(i, 1) <> ""
    If Dico.Exists(Left(f.Cells(i, 1), 5)) Then f.Rows(i).Delete Else i = i + 1
  Loop
End Sub
JB
Fichiers attachés
Type de fichier : zip Copie de test txt.zip (24,9 Ko, 6 affichages)

Dernière modification par BOISGONTIER ; 04/07/2009 à 09h03.
BOISGONTIER est déconnecté   Réponse avec citation
Vieux 04/07/2009, 14h23   #11 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Re : Supprimer ligne si en VBA excel

Merci encore BOISGONTIER.

Maintenant, j'ai se probleme.

Dans la rangé a de la feuille trie, comment faire en sorte que le chiffre indiqué, exemple 1530, devienne en format texte en 5 caracteres.

ex: 1530 deviens 01530.

s'il a déja 5 caracteres, ex 58350, il reste pareille.

matrix
matrix est déconnecté   Réponse avec citation
Vieux 04/07/2009, 15h44   #12 (permalink)
XLDnaute Accro
 
Date d'inscription: octobre 2005
Localisation: Paris
Messages: 1 073
Par défaut Re : Supprimer ligne si en VBA excel

Bonjour à tous et à toutes

Citation:
comment faire en sorte que ... 1530 devienne 01530 ...
Une formule à entrer en B1 et à tirer vers le bas (...par exemple)
Code:
=SI(CODE(STXT(A1;5;1))=32;"0";"")&A1
A plus
soenda est déconnecté   Réponse avec citation
Vieux 04/07/2009, 15h51   #13 (permalink)
XLDnaute Occasionel
 
Avatar de matrix
 
Date d'inscription: janvier 2008
Messages: 318
Par défaut Re : Supprimer ligne si en VBA excel

est-ce qu'il y a une façon de le faire en VBA au lieu d'une formule dans la cellule?
matrix est déconnecté   Réponse avec citation
Vieux 04/07/2009, 15h58   #14 (permalink)
XLDnaute Accro
 
Date d'inscription: octobre 2005
Localisation: Paris
Messages: 1 073
Par défaut Re : Supprimer ligne si en VBA excel

Re,
Citation:
y a-t-il une façon de le faire en VBA ?
Essaie avec l'enregistreur de macro ...

A plus
soenda est déconnecté   Réponse avec citation
Vieux 04/07/2009, 16h02   #15 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: septembre 2007
Messages: 3 299
Par défaut Re : Supprimer ligne si en VBA excel

Voir PJ

JB
Fichiers attachés
Type de fichier : xls SupLignesBD.xls (32,0 Ko, 13 affichages)

Dernière modification par BOISGONTIER ; 04/07/2009 à 16h05.
BOISGONTIER est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Comment supprimer les cellules d'une ligne après saisi du N° de ligne frichti Forum Excel 1 27/05/2008 14h47
supprimer une ligne excel si le texte d'une cellule est en gras sylv@in Forum Excel 3 27/05/2008 14h19
supprimer 1 ligne sur 3 sous excel Reno : supprimer 1 ligne sur 3 sous Forum Excel 4 24/11/2005 17h29
macro excel pour supprimer ligne Richard.RdA Forum Excel 2 02/08/2005 16h19
Supprimer le contenu d'une ligne sans supprimer les formules Kam7 Forum Excel Downloads - Archives 0 29/09/2003 17h15


Fuseau horaire GMT +2. Il est actuellement 12h26.


(C) 2006 Excel Downloads