Poser votre question
0

Supprimer des lignes

posée 2019-02-03 18:52:35 +0100

Image Gravatar de Rakam

updated 2019-02-05 14:28:17 +0100

Image Gravatar de pierre-yves samyn

J'ai une vieille macro utilisée il y a ~5 ans mais j'en ai de besoin présentement. J'obtiens "l'argument n'est pas facultatif pour la ligne: rows = range.rows". J'ai besoin d'effacer des lignes inutiles dans un classeur de A1:CD925. Voici la macro:

REM  *****  BASIC  *****

'range est la zone de cellules à traiter ou l,ensemble des cellules à traiter'
'searchColumn index (dans range, à partir de 0) de la colonne à comparer ex. A=0, D=3, F=5'
'txt la chaîne de caractères à chercher (données)'

Sub DeleteLines(range As Object, searchColumn As Integer, txt As String)
    Dim rows As Object, rowIndex As Integer
    rows = range.rows
    For rowIndex = rows.count-1 To 0 Step -1
        If range.GetCellByPosition(searchColumn,rowIndex).string = txt Then rows.RemoveByIndex(rowIndex,1)
    Next rowIndex
End Sub

Sub Essai
     '(Première colonne:dernière colonne)'
    range = ThisComponent.sheets(0).GetCellRangeByName("I2:CD925") 
    searchColumn = 0 'travailler sur la colonne, I'
    txt = "plutonic" 'ou tout autre texte'
    DeleteLines(range,searchColumn,txt)
End Sub

Ici, suppression de toutes les lignes contenant "plutonic", se trouvant dans la colonne I (9ème colonne) du classeur

J'aimerais savoir ce qui ne fonctionne pas, pour comprendre!

Merci pour l'aide

éditer requalifier signaler fermer fusionner supprimer

2Réponses

0

répondue 2019-02-05 14:36:31 +0100

Image Gravatar de pierre-yves samyn

updated 2019-02-09 07:39:15 +0100

Bonjour

rows est en effet à éviter mais ce n'est pas la cause du problème : tu lances simplement la procédure DeleteLines alors qu'il faut lancer Essai (DeleteLines attend les arguments passés par Essai).

Si tu procèdes depuis l'EDI (l'environnement de développement), il suffit de cliquer dans ESSAi avant de cliquer sur Exécuter.

Par ailleurs cette macro me semble inutile car il te suffit de

  • sélectionner ta plage
  • Rechercher Tout plutonic, fermer les dialogues
  • clic droit sur l'en-tête de ligne puis Supprimer des lignes

[EDIT 09/02/19]

C'était implicite dans mon texte précédent mais je précise que le clic droit est à faire sur une des lignes sélectionnée (par ex. L12 dans la copie d'écran suivante) :

clic droit en-tete lignes sélectionnée

Cordialement

éditer signaler supprimer permalien plus

Commentaires

Merci Pierre-Yves pour l'aide. J'ai dû quand même apprivoiser le pdf Macros Calc pour comprendre l'utilisation de l'EDI.

Par contre, ta deuxième suggestion ne fonctionne pas, tout s'efface!

Cordialement

Image Gravatar de RakamRakam ( 2019-02-08 23:10:47 +0100 )éditer

@Rakam merci pour le "retour", ma suggestion fonctionne : voir mon ajout dans ma réponse précédente. Si c'est le cas tu peux marquer la réponse acceptée en la cochant comme correcte en cliquant ✔ en haut à gauche de ma réponse

Image Gravatar de pierre-yves samynpierre-yves samyn ( 2019-02-09 07:51:43 +0100 )éditer

Pierre-Yves, c'est beaucoup plus clair avec la deuxième façon. Mais sur MacOs c'est suprimé et suprimer des lignes. Tester, ça fonctionne.

merci!

Image Gravatar de RakamRakam ( 2019-02-09 20:55:52 +0100 )éditer
0

répondue 2019-02-05 14:28:55 +0100

Image Gravatar de Valioud

rows est un mot-clé du langage. Il est mauvais de s'en servir comme variable.

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2019-02-03 18:52:35 +0100

Consultée: 157 fois

Mise à jour: Feb 09