Suppression de lignes en VBA dont certaines cellules contiennent des *

alphabeta

XLDnaute Nouveau
Bonjour à tous


Je suis nul en VBA mais je suis contraint de faire un tableau avec certains automatismes.

La problématique est la suivante:

Je récupère une balance que je dois remettre en forme pour la suite des traitements.

Le problème est que la balance communiqué contient des sous totaux (sans formule) indiqués par des * à gauche du libellé en colonne B.
Je doit donc supprimer ces lignes.

Mais je n’arrive pas à utiliser ce que je trouve sur le net puisque a priori c'est considéré comme des caractères generiques

J'ai tenté aussi de faire aussi le travail à partir des numéros de compte. J'ai essayer de supprimer les lignes dont les numéros de comptes avaient moins de 8 caractères.
Cela ne fonctionne pas non plus. Soit ma macro est fausse ( c'est très probable) soit les numéro de compte étant en realité au format texte, cela dois se traiter de façon particulière

Voici le dernier essai en date (extrait de la partie qui me pose problème, le reste semble fonctionner)

Dim derlig As Long, cellule As Range

derlig = Range("B65536").End(xlUp).Row

For Each cellule In Range("B1" & derlig)

If Len(cellule) < 8 Then
Rows(cellule.Row).Delete
End If


Vous remerciant par avance pour votre aide
 

Pièces jointes

  • question exceldownloads.xlsx
    9.1 KB · Affichages: 15

Lolote83

XLDnaute Barbatruc
Re : Suppression de lignes en VBA dont certaines cellules contiennent des *

Salut AlphaBéta,
Dans ton code :
Dim derlig As Long, cellule As Range

derlig = Range("B65536").End(xlUp).Row

For Each cellule In Range("B1" & derlig)

Essaye de remplacer par :
For Each Cellule in Range("B1:B" & Derlig) si tout se passe sur la colonneB

@+ Lolote83
 

Caillou

XLDnaute Impliqué
Re : Suppression de lignes en VBA dont certaines cellules contiennent des *

Bonjour,

Lolote a raison !
... par contre je penses que tu vas avoir un problème de décalage de lignes, si c'est le cas, essayes ceci :
Code:
Sub suppr_lignes()
  Dim derlig As Long, cellule As Range

  derlig = Range("A65536").End(xlUp).Row
  
  For i = 1 To derlig
    
    If Left(Cells(i, "B"), 1) = "*" Then
      Rows(Cells(i, 1).Row).Delete
      i = i - 1
    End If
  Next
End Sub
Caillou
 

alphabeta

XLDnaute Nouveau
Re : Suppression de lignes en VBA dont certaines cellules contiennent des *

Un grand merci à lolote83 et à caillou pour votre aide.

La solution de lolote83 n'a pas fonctionné dans mon cas. J'avais déjà essayé car cela me semblait logique. Je dois avoir un autre probléme quelque part ailleurs.

La solution de caillou fonctionne pleinement. Donc je vais arrêter de chercher et passer à la suite.

Vraiment un grand merci à tous les deux.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 518
dernier inscrit
hbenaoun63