Supprimer une ligne si cellule d'une colonne remplie
Antraxin
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Antraxin Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Antraxin Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un tableau sous excel qui n'a pas une taille limite, il peut y avoir 2 lignes comme 5000 avec des dates d'entrée et de sortie.
Ce que j'aimerais c'est détecté toute les lignes où une cellule de la colonne H contient une date et supprimer cette ligne via une macro.
Les données du tableau commencent en A6 (l'intitulé du tableau est en A5)
J'utilise déjà des macro dans mon fichier mais là je ne sais pas comment faire ça.
Merci d'avance pour votre aide.
J'ai un tableau sous excel qui n'a pas une taille limite, il peut y avoir 2 lignes comme 5000 avec des dates d'entrée et de sortie.
Ce que j'aimerais c'est détecté toute les lignes où une cellule de la colonne H contient une date et supprimer cette ligne via une macro.
Les données du tableau commencent en A6 (l'intitulé du tableau est en A5)
J'utilise déjà des macro dans mon fichier mais là je ne sais pas comment faire ça.
Merci d'avance pour votre aide.
A voir également:
- Supprimer une ligne si cellule d'une colonne remplie
- Supprimer rond bleu whatsapp - Guide
- Déplacer une colonne excel - Guide
- Supprimer une page word - Guide
- Trier une colonne excel - Guide
- Aller à la ligne dans une cellule excel - Guide
5 réponses
Bonjour
La date colonne H est elle issue d'une formule ?
nombre total de colonnes ou dernière lettre des colonnes utilisées ?
Merci d'avance
La date colonne H est elle issue d'une formule ?
nombre total de colonnes ou dernière lettre des colonnes utilisées ?
Merci d'avance
Bonjour,
Tu peux le faire avec cette simple ligne de code :
Tu peux le faire avec cette simple ligne de code :
Cells(6, "H").Resize(Cells(Rows.Count, "H").End(xlUp).Row, 1).SpecialCells(xlCellTypeConstants).EntireRow.Delete
Bonjour, jai essayer les deux codes mais ça ne fonctionne pas
Surement ma syntaxe qui est mauvaise, je ne connais pas le VBA, je me sers de ce que j'arrive a trouver sur le net.
Merci a vous pour votre aide
Option Explicit Sub Supprimer() Cells(6, "H").Resize(Cells(Rows.Count, "H").End(xlUp).Row, 1).SpecialCells(xlCellTypeConstants).EntireRow.Delete End Sub
Surement ma syntaxe qui est mauvaise, je ne connais pas le VBA, je me sers de ce que j'arrive a trouver sur le net.
Merci a vous pour votre aide
Bonjour,
Pour ma part, je ne comprends pas pourquoi tu insères une date, si c'est pour supprimer la ligne de suite après...
Donc, en utilisant uniquement ce code (j'ai gardé l'option double-clic, et ajouté une condition, sur le numéro de ligne) :
Peut-être?
Bon dimanche
Pour ma part, je ne comprends pas pourquoi tu insères une date, si c'est pour supprimer la ligne de suite après...
Donc, en utilisant uniquement ce code (j'ai gardé l'option double-clic, et ajouté une condition, sur le numéro de ligne) :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Row > 1 Then
If .Column = 6 Or .Column = 7 Or .Column = 8 Then .EntireRow.Delete: Cancel = True
End If
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If IsDate(Target) Then
If .Column = 6 Or .Column = 7 Or .Column = 8 Then .EntireRow.Delete
End If
End With
End Sub
Peut-être?
Bon dimanche
En fait c'est pour supprimer de mon premier onglet, avant de supprimer j'ai une commande qui envoi toute les lignes avec une valeur dans la colonne H sur un deuxième onglet. le code n'est pas de moi donc je ne sais pas comment le changer pour qu'il supprimer après avoir déplacer.
C'est pour ça que je cherche un deuxième code qui fait qu'une fois que j'ai déplacer je puisse supprimer.
C'est pour ça que je cherche un deuxième code qui fait qu'une fois que j'ai déplacer je puisse supprimer.
Re-,
En effectuant le déplacement juste avant la suppression, dans un des codes proposés, peut-être?
Quel code, utilises-tu, pour effectuer le déplacement?
En effectuant le déplacement juste avant la suppression, dans un des codes proposés, peut-être?
Quel code, utilises-tu, pour effectuer le déplacement?
Le code n'es pas de moi, j'espère que celui qui l'a fait ne m'en voudras pas ^^'
Il avait mis cette ligne après le dernier End if
Mais elle ne fonctionne pas.
Sub Archiver() Dim I As Worksheet 'déclare la variable I (onglet Interventions) Dim H As Worksheet 'déclare la variable H (onglet Histo) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim NL As Long 'déclare la variable NL (Nombre de Lignes) Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes) Dim J As Long 'déclare la variable J (incrément) Dim K As Long 'déclare la variable K (incrément) Dim L As Byte 'déclare la variable L (incrément) Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Dim PL As Range 'déclare la variable PL (PLage) Set I = Worksheets("Interventions") 'définit l'onglet I Set H = Worksheets("Histo") 'définit l'onglet H Set PL = I.Range("A1") 'initialise la variable PL TV = I.Range("A4").CurrentRegion 'définit le tableau des valeurs TV (il commence en A3 et la première valeur est à sa 4ème ligne) NL = UBound(TV, 1) 'définit le nombre de lignes NL du tableau des valeurs TV NC = UBound(TV, 2) 'définit le nombre de colonnes NC du tableau des valeurs TV K = 1 'initialise la variable K For J = 4 To NL 'boucle 1 : sur toutes les lignes J du tableau des valeurs TV (en partant de la 4ème) If TV(J, 8) <> "" Then 'condition : si la donnée ligne I colonne 8 (=> "Efectuer le") n'est pas vide Set PL = IIf(PL.Cells.Count = 1, I.Rows(J + 2), Application.Union(PL, I.Rows(J + 2))) 'définit la variable PL ReDim Preserve TL(1 To NC, 1 To K) 'redimensionne le tableau des lignes TL For L = 1 To NC 'boucle 2 : sur toutes les colonnes du tableau des valeurs TV TL(L, K) = TV(J, L) 'récupère dans la ligne L de TL, la valeur de la donnée en colonne L de TV (=transposition) Next L 'prochaine colonne de la boucle 2 K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL) End If 'fin de la condition Next J 'prochaine ligne de la boucle 1 If K > 1 Then 'condition : si K est égale à 1 (au moins une occurence "Effectué le" trouvée) Set DEST = IIf(H.Range("A4") = "", H.Range("A4"), H.Range("A3").End(xlDown).Offset(1, 0)) 'définit la cellule de destination DEST DEST.Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL) 'renvoie dans DEST redimensionnée le tableau TL transposé End If 'fin de la condition End Sub
Il avait mis cette ligne après le dernier End if
If PL.Cells.Count > 1 Then PL.Delete 'efface la plage PL
Mais elle ne fonctionne pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La date de la colonne H est insérée de cette manière
Ou écrite via le pavé numérique.
La dernière colonne du tableau est en L5