Macro excel

richard.rda -  
 KdTcA -
bonjour,
SVP j'ai un tableau EXCEL avec en colonne C des valeurs (négatives, nulles ou positives).
Je voudrais par une macro :
pouvoir supprimer automatiquement les lignes où la valeur en cellule C est : positive ou nulle.

Merci à celui ou celle qui m'apportera la solution
Configuration: Windows XP

29 réponses

  • 1
  • 2
  1. KdTcA
     
    Je ne perds pas mon temps vu que j'apprends en même temps!
    :)
    1
  2. KdTcA
     
    'lut
    DerniereCellule = Application.Workbooks("ton_fichier.xls").Worksheets("Nom_de_ta_feuille").Range("C65536").End(xlUp).Row
    For i = 1 To DerniereCellule
    If Range("C" & i & "").value >= 0 then
    Range("C" & i & "").delete
    end if
    next i


    non?
    0
  3. richard.rda
     
    bien recu réponse si prompte et merci,
    mais, je ne suis pas expert et ne sais pas :
    - où saisir cette macro ?
    - où doit débuter la saisie ?
    - comment la lancer ?

    sachant que je veux l'inclure dans une autre macro obtenue avec excel "macro, nouvelle macro

    encore merci pour votre patience et votre aide
    0
  4. KdTcA
     
    Tu crées un bouton et tu double clic dessus et tu inséres ce code dedans...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Richard.RdA
     
    vous êtes trop calé pour moi,
    je ne comprends pas ce que vous me demandez:

    je souhaite inclure "votre petit programme"

    dans une macro ique j'ai établie dans mon fichier Excel en utilisant dans EXCEL :OUTILS-MACROS-NOUVELLE MACRO..."

    et la votre devrait me permettre de :

    dans une feuille de n lignes
    avec sur chaque ligne, en cellule C, des valeurs : négatives, ou nulles, ou positives.
    de supprimer les lignes entières où la valeur dans C est >=0

    encore une fois merci pour votre aide et soyez indulgent, je n'ai pas votre connaissance en la matière.
    0
  7. KdTcA
     
    'lut

    Quand veux tu lancer cette macro??. Par le biais de quelle action?
    0
  8. Richard.RdA
     
    en allant dans OUTILS, MACRO et nom de ma macro

    je n'ai pas besoin de créer un bouton

    merci
    0
  9. KdTcA
     
    code = kida argh je vais bien tomber sur mon pseudo un jour!!!

    un bouton c'est plus beau quand même! :S

    bon ben mais le code que j'ai dit à l'intérieur de çà:

    sub macro1()
    
    end sun()


    et tout ce code tu le mets dans la page vba d'excel pour cela :
    1/ clic droit dans barre des taches > Visual Basic
    2/ clic sur l'icone visual basic editor de la barre d'outils Visual Basic
    0
  10. Richard.RdA
     
    j'ai copié votre 1er envoi ainsi, et ca bugge
    mon fichier : macrosupprimerligne
    ma feuille : essai

    Sub une( )
    '
    ' une Macro
    ' Macro enregistrée le 02/08/2005 par AUDIBERT.R

    DerniereCellule = Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("C65536").End(xlUp).Row

    For i = 1 To 20
    If Range("C" & i & "").Value >= 0 Then
    Range("c" & i & "").Delete

    End If
    Next i

    End Sub

    que faut-il corriger ?
    merci encore par avance
    0
  11. Richard.RdA
     
    "erreur d'exécution 40036

    erreur definie par l'application ou l'objet"

    et c'est tout
    0
  12. KdTcA
     
    Sub une( ) 
    ' 
    ' une Macro 
    ' Macro enregistrée le 02/08/2005 par AUDIBERT.R 
    
    
    DerniereCellule = Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("C65536").End(xlUp).Row 
    
    For i = 1 To DerniereCellule 
    If Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("C" & i & "").Value >= 0 Then 
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & "").Select
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & "").Delete 
    
    End If 
    Next i 
    
    End Sub 


    Et avec çà?
    0
  13. Richard.RdA
     
    avec un copie coller de ce dernier envoi:
    - le message d'erreur à disparu
    - seules les cellules C disparaissent (et non les lignes correspondantes)
    - il reste beaucoup de cellules C de valeur = 0 ou >=0

    j'ai testé dan un petit tableau d'essai à 3 colonnes et 10 lignes
    et ça ne marche pas
    0
  14. KdTcA
     
    ahhhhhhh!!!!!!

    C'était les lignes complètes que tu voulais supprimer... lol

    Bah remplace
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & "").Select
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & "").Delete 
    par
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & ":L" & i & "").Select
    Application.Workbooks("macrosupprimerligne.xls").Worksheets("essai").Range("c" & i & ":L" & i & "").Delete 
    si la dernière colonne de ta ligne est L sinon tu remplaces le L par la lettre de dernière colonne correspondante...
    0
  15. Richard.RdA
     
    on progresse:

    en remplacant C par A dans la ligne se terminant par delete (sinon on continue à ne supprimer que la celluel C

    MAIS
    en exécutant la macro : il reste des lignes =0 et >0 pourquoi?

    pour arriver à mon résultat il me faut répéter plusieurs fois la macro, une fois devrait pourtant suffire ?
    0
  16. random Messages postés 1612 Statut Membre 155
     
    parceque vous vous déplacez dans la boucle et que vous supprimez
    des cellules et qu'excel ne sait plus ou il en est
    pour eviter cela on va proceder comme suit
    j'ajoute deux colonnes
    dans la premiere je mets =ligne()
    dans la seconde je mets =machintruc>=0
    je copie les deux colonnes
    je fais collage spécial valeur au même emplacement
    je fais un tri sur la colonne vrai faux
    je selectionne la zone qui m'interesse (frontière vrai faux)
    fin ou début de tableau
    je fais une suppression de cette zone
    je demande le tri sur la colonne ou j'ai mis numéro de ligne
    je supprime cette colonne
    j'entonne un pean au mode allegretto

    0
  17. KdTcA
     
    merci random!
    j'y avais pensé aussi à ce problème mais plus moyen de me rappelr comment l'éviter...
    0
  18. Richard.RdA
     
    merci Random,

    mais désolé c'est trop compliqué pour moi,
    j'ai 1 pb à presque chaque ligne :

    a)
    1ère colonne :
    =ligne( ) faut'il saisir caractère à caractère ? et que mettre entre les parenthèses V

    b)
    2ème colonne
    idem et par qoui dois je remplacer "machintruc" ?

    dois-je recopier ces 2 colonnes vers le bas et sur combien de lignes ?

    c)
    faire un tri sur colonne vrai faux
    je ne sais pas faire

    d)
    et idem pour la suite
    0
  19. KdTcA
     
    'lut

    C'est peut être plus simple par macro de :

    1/ copier chaque ligne dont la cellule C a une valeur inférieure à 0
    2/ supprimer le premier tableau
    3/ couper / coller au bon endroit le nouveau tableau

    non?
    0
  20. Richard.RdA
     
    plus simple comme ça ?

    mais je ne sais pas faire cette macro

    merci
    0
  • 1
  • 2