Supprimer des lignes quand les données d'une colonne sont nulles

dn35

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite supprimer en vba les lignes d'un tableau lorsque les données d'une colonne sont nulles ou égale à 0.
Sur les précédents fils de discussion, j'ai bien trouvé des infos, mais aucune ne correspond à ce que je souhaite faire.
(en passant un petit rappel des wiki https://www.excel-downloads.com/thr...iltres-variables-fichiers-fermes-acces.92374/ qui sont bien utiles pour les petits joueurs Exceliens comme moi !)

Avez-vous un petit bout de code exemple ?

Merci d'avance
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Supprimer des lignes quand les données d'une colonne sont nulles

bonjour dn35

un exemple en utilisant un tablo

Code:
Sub es()
Dim t(), t1(), x As Long, i As Long
With Feuil1
t = .Range("a4:C" & .Cells(Rows.Count, 1).End(3).Row)
.Range("a4:C" & .Cells(Rows.Count, 1).End(3).Row).ClearContents
ReDim t1(1 To UBound(t), 1 To 3)
For i = 1 To UBound(t)
If t(i, 3) <> 0 And t(i, 3) <> "" Then
x = x + 1
t1(x, 1) = t(i, 1): t1(x, 2) = t(i, 2): t1(x, 3) = t(i, 3)
End If
Next i
.[A4].Resize(x, 3) = t1
End With
End Sub

EDIT bonjour fredl:)
 
Dernière édition:

klin89

XLDnaute Accro
Re : Supprimer des lignes quand les données d'une colonne sont nulles

Bonsoir le forum :)

VB:
Sub Supprime()
    With Sheets("Feuil1")
        With .Range("b4", .Range("b" & Rows.Count).End(xlUp)).Offset(, 2)
            .Formula = "=if(c4=0,1,"""")"
            On Error Resume Next
            .SpecialCells(-4123, 1).EntireRow.Select    'sélectionne
            '.SpecialCells(-4123, 1).EntireRow.Delete 'supprime
            On Error GoTo 0
        End With
        .Columns("d").Delete
    End With
End Sub
klin89
 

dn35

XLDnaute Occasionnel
Bug défilement date

Bonsoir,

J'ai finalement eut le temps de bosser sur mon fichier (à ce titre je remercie une fois encore bruno, Klin89, laetitia90 et Fredl pour leur aide :D:D:D:D:D:D:D)
Il me reste un bug à corriger: sur mon formulaire, lorsque je fais défiler la date et que je sors des bornes existantes dans mon tableau. Comment puis-je corriger cela, sachant que par défaut, le formulaire doit s'ouvrir sur la date du jour.

Petite chose que je ne m'explique pas non plus, quand je fais défiler la date, les informations ont un peu de mal à se mettre à jour dans le formulaire.:confused: A quoi est-ce du ?

Merci d'avance de vos réponses et bonne soirée
Laure
 

Pièces jointes

  • Planification des OT 2015.xlsm
    219.6 KB · Affichages: 33

fredl

XLDnaute Impliqué
Re : Bug défilement date

Bonjour,
ta macro ne bugue pas parce que tu dépasses une certaine date mais parce que elle n'arrive pas à charger les données du 7/11/2015 puisque ces dernieres (N°OT,Libellé,Secteur=N/A !)

Code:
Private Sub TextDate_Change()

On Error GoTo 0


' Modifie les informations contenues dans la frame informations de travail en fonction des informations de date et de technicien


With Sheets("LISTES")


.Range("E2").FormulaLocal = TextDate.Value


'en fonction de la date et du technicien, reporte les informations de N° OT
OT1.Value = .Range("H2").Value  'NE PEUT PAS SE CHARGER CAR ERREUR SUR Range("H2").Value
 

dn35

XLDnaute Occasionnel
Re : Bug défilement date

Bonjour Fredl,

Oui je me doutais bien, mais je ne vois pas comment gérer l'erreur :
- soit en plaçant dans la formule en H2 quelque chose qui permette de ne pas renvoyer #NA!
- Soit le code prend en compte la possibilité d'erreur et renvoie un message du type "pas de données disponibles pour cette date" ...
Mais je ne sais pas gérer les erreurs et les fils de discussion que j'ai consulté sur le sujet ne m'ont pour le moment pas apporté la solution (ou très probablement, je n'ai pas été capable de mettre en pratique ...:(:(:(, d'où l'apparition de
Code:
On Error Goto 0
qui ne sert pas à grand chose en l'état actuel des choses ... :eek::eek:)

Bref, j'ai besoin d'aide pour finaliser cette partie ...
Merci d'avance

Bonne journée
Laure
 

Pierrot93

XLDnaute Barbatruc
Re : Supprimer des lignes quand les données d'une colonne sont nulles

Bonjour,

petite remarque au passage :
On Error Goto 0

réinitialise le gestionnaire d'erreur.... je pense que tu voulais plutôt utiliser

Code:
On Error Resume Next

qui permet en cas d'erreur de passer à l'instruction suivante sans renvoyer de message.... mais bon vaut mieux éviter l'erreur ou la gérer au mieux.... je t'engage à consulter l'aide vba sur le sujet...

bon après midi
@+
 

dn35

XLDnaute Occasionnel
Re : Supprimer des lignes quand les données d'une colonne sont nulles

Bonjour Pierrot et merci,

J'avais effectivement pris le temps de regarder l'aide vba (qui a déjà résolu nombre de mes problèmes)
Par contre, la première fois que je l'ai testée, j'ai eut nombre d'erreur. pourtant l'aide vba est claire sur le sujet :
Lorsqu'une erreur d'exécution survient, le contrôle est transmis à l'instruction qui suit immédiatement celle où l'erreur s'est produite
Je viens de refaire le test, et effectivement pas de soucis ... donc j'ai du mal placer ou mal écrire la première fois.
Il aurait mieux valu gérer l'erreur, mais pour le moment je reste bloquée ...

Je laisse le fichier en l'état pour l'instant mais je poursuis mes recherches ...

Merci !!!
Bonne journée
 

gosselien

XLDnaute Barbatruc
Re : Supprimer des lignes quand les données d'une colonne sont nulles

Bonsoir le forum :)

VB:
Sub Supprime()
    With Sheets("Feuil1")
        With .Range("b4", .Range("b" & Rows.Count).End(xlUp)).Offset(, 2)
            .Formula = "=if(c4=0,1,"""")"
            On Error Resume Next
            .SpecialCells(-4123, 1).EntireRow.Select    'sélectionne
            '.SpecialCells(-4123, 1).EntireRow.Delete 'supprime
            On Error GoTo 0
        End With
        .Columns("d").Delete
    End With
End Sub
klin89

Chouette code !

comment savoir ce qu'on peut mettre dans .specialcells puisque ici tu mets -4123, 1 ? et que signifie le -1 ?

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 688
Messages
2 090 961
Membres
104 710
dernier inscrit
TomCallhagan