Macros Excel ...

Macros Excel ... - Logiciels - Windows & Software

Marsh Posté le 01-04-2007 à 21:26:35    

Bonjour,
 
Je tente de faire une macro en Excel. Je voudrais :
- à partir d’une colonne de valeurs textes, supprimer les lignes qui contiennent certaines valeurs.
- Ex : colonne D, j’ai les valeurs aa, bb, cc, dd, ee
- Je voudrais supprimer les lignes qui contiennent les valeurs aa et cc.
 
J’ai commencé une  macro mais je coince.
 
Sub Command_Click()
For i = 2 To i = 50
If i = "hgr" Then Rows(i = "hgr" ).Delete
Else
End Sub
 
Une idée ?.

Reply

Marsh Posté le 01-04-2007 à 21:26:35   

Reply

Marsh Posté le 02-04-2007 à 10:31:23    

Droopy 60 a écrit :

Bonjour,
 
Je tente de faire une macro en Excel. Je voudrais :
- à partir d’une colonne de valeurs textes, supprimer les lignes qui contiennent certaines valeurs.
- Ex : colonne D, j’ai les valeurs aa, bb, cc, dd, ee
- Je voudrais supprimer les lignes qui contiennent les valeurs aa et cc.
 
J’ai commencé une  macro mais je coince.
 
Sub Command_Click()
For i = 2 To i = 50
If i = "hgr" Then Rows(i = "hgr" ).Delete
Else
End Sub
 
Une idée ?.


 
Salut
 
Pas vraiment sûr d'avoir compris. Essaies cette macro:
Sub Macro1()
For i = 1 To 15
'Tu choisis le nombre de ligne
For j = 1 To 5
'Tu choisis la colonne
If Cells(i, j) = "aa" Or Cells(i, j) = "cc" Then
Rows(i).Delete
End If
Next j
Next i
End Sub
 


Message édité par TAM136 le 02-04-2007 à 10:36:12
Reply

Marsh Posté le 02-04-2007 à 14:26:10    

Merci de ta réponse.
C'est quelque chose dans ce goût la.
La macro ne fonctionne pas pour l'instant.
 
L'idée est de supprimer un ligne dans laquelle apparait une valeure texte à partir d'une colonne.
 
Je cherche encore, si tu as une idée

Reply

Marsh Posté le 02-04-2007 à 14:36:27    

Bonjour
 
La macro de TAM136 fonctionne tres bien, peux tu preciser pourquoi elle "ne fonctionne pas pour l'instant" ?
 
Cordialement

Reply

Marsh Posté le 02-04-2007 à 14:59:21    

Y a t-il un myen de t'envoyer le fichier Excel sur lequel je travail ?

Reply

Marsh Posté le 02-04-2007 à 15:12:34    

il y a mon adresse mail sur mon profil apres je le partagerais ici

Reply

Marsh Posté le 02-04-2007 à 15:47:11    

Le mail est tres bien, mais il manque la piece jointe :p

Reply

Marsh Posté le 02-04-2007 à 20:31:13    

Bonsoir
 
Essaies ca :
 

Sub Droopy()
 
'ce que tu tapes dns la boite de dialogue est stockee dns la variable ValSch
ValSch = InputBox("Saisis la valeur cherchee pour effacer la ligne. Attention respecter les min/maj", "Search & destroy" )
 
Col = 4 'colonne de recherche
Ligne = 162
 
For x = 2 To Ligne
    If Cells(x, Col) = ValSch Then
        Rows(x).Select
        Selection.Delete Shift:=xlUp
        x = x - 1
        Ligne = Ligne - 1
    End If
Next x
 
End Sub


 
Je n'ai fait qu'un test, positif. Dis nous si ca te va
 
Cordialement
 
 
[edit]
Ligne=Ligne-1  <(--- ca tu t'en fou, j'avais fait ca pour intialiser a chaque fois le nb de ligne, mais apres je l'ai mis en dur avec Ligne=162
[/edit]


Message édité par SuppotDeSaTante le 02-04-2007 à 20:36:33

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 02-04-2007 à 22:46:10    

Désolé de te répondre si tard. Mon PC de bureau me réponds "Idendifiants invalides". J'essai depuis mon portable et tient au courant.  

Reply

Marsh Posté le 02-04-2007 à 22:59:33    

C'es "presque" exactement ça. Simplement je connais déjà les valeurs que je veux supprimer et elles ne changent pas (HGR, UU, MU, BA, +PS, AC).
J'avais pensé au début à faire un filtre automatique et supprimer valeurs par valeurs mais ta macro est plus simple et plus conviviale  
Quoi qu'il arrive je te remercie de toute l'aide que tu m'apporte.

Reply

Marsh Posté le 02-04-2007 à 22:59:33   

Reply

Marsh Posté le 03-04-2007 à 08:41:31    

Slaut
 
Je ne comprends comment ma macro ne fonctionne pas chez toi. Puisque tu connais les valeurs à suprimer, essaies ça:
 
Sub Macro1()
For i = 1 To 162
'1 si tu veux que la macro fonctionne à partie de la ligne1
'Comme je n'ai pas le fichier, je ne connais pas cette ligne
'Tu choisis le nombre de ligne
For j = 4 To 4
'Si j'ai bien compris, c'est la colonne 4 qui sert de référence
If Cells(i, j) = "HGR" Or Cells(i, j) = "UU" Or Cells(i, j) = "MU" Or Cells(i, j) = "BA" Or Cells(i, j) = "+PS" Or Cells(i, j) = "AC" Then
Rows(i).Delete
End If
Next j
Next i
End Sub
 

Reply

Marsh Posté le 03-04-2007 à 09:35:35    

Oups j'ai oublié de mettre le fichier TAM136 dsl...
 
Fichier

Reply

Marsh Posté le 03-04-2007 à 09:42:52    

Je pense que ta macro ne va pas TAM136, en effet tu fais une boucle for de 1 à 162 (deja c'est de 2 à 162 :p en 1 sont souvent les en-tete mais on va dire que c'est ma faute je n'ai pas partagé le fichier... ;)) mais surtout, lorsque tu supprime une ligne, par exemple les valeurs etant dans la ligne 5 supprimées les valeurs de la ligne 6 reviennent dans la ligne 5 etc. donc la valeur de ton i a chaque suppression doit etre oter de 1 pour repartir de la ligne qui a été supprimée... Suis-je clair...? :/
 
Cordialement
 
[edit]
 
J'aime pas trop faire les choses en dur, mais soit, essaies ca a ce moment :
 

Sub Droopy()  
 
Col = 4 'colonne de recherche  
Ligne = 162  
 
For x = 2 To Ligne  
    If Cells(x, Col) =  "HGR" Or Cells(x, Col) = "UU" Or Cells(x, Col) = "MU" Or Cells(x, Col) = "BA" Or Cells(x, Col) = "+PS" Or Cells(x, Col) = "AC" Then  
        Rows(x).Select  
        Selection.Delete Shift:=xlUp  
        x = x - 1  
    End If  
Next x  
 
End Sub


 
[/edit]

Message cité 1 fois
Message édité par SuppotDeSaTante le 03-04-2007 à 09:52:20

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 03-04-2007 à 10:14:04    

Tout simplement fabuleux.
Mille fois merci.
C'est exactement ce que je voulais.
Encore merci, merci, merci.
@+
Droopy

Reply

Marsh Posté le 03-04-2007 à 10:20:03    

Merci aussi à TAM136 qui m'a évité de ressaisir If Cells(x, Col) =  "HGR" Or Cells(x, Col) = "UU" Or Cells(x, Col) = "MU" Or Cells(x, Col) = "BA" Or Cells(x, Col) = "+PS" Or Cells(x, Col) = "AC"
;)

Reply

Marsh Posté le 03-04-2007 à 12:35:19    

SuppotDeSaTante a écrit :

Je pense que ta macro ne va pas TAM136, en effet tu fais une boucle for de 1 à 162 (deja c'est de 2 à 162 :p en 1 sont souvent les en-tete mais on va dire que c'est ma faute je n'ai pas partagé le fichier... ;)) mais surtout, lorsque tu supprime une ligne, par exemple les valeurs etant dans la ligne 5 supprimées les valeurs de la ligne 6 reviennent dans la ligne 5 etc. donc la valeur de ton i a chaque suppression doit etre oter de 1 pour repartir de la ligne qui a été supprimée... Suis-je clair...? :/
[/edit]


 
Bien vu dje!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed