effacer ligne si cellule de la colonne A contient du texte

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour le forum
en colonne A j'ai des valeurs texte, des valeurs dates et des cellules vides
j'aimerais effacer le contenu des lignes contenant uniquement du texte dans cette colonneA
ainsi que les colonnes de chaque ligne correspondantes colonnes ("C:AA") et colonne ("AF")
j'ai besoin de ça à partir de la ligne 3 et jusqu'à la ligne 16110
merci pour votre aide
 
bonjour à tous
merci de vous être penché sur mon problème
au final mon premier classeur vous a enduit en erreur
il s'agit bien d'alléger le tableau originel pour recommencer une nouvelle saisie tous les ans
mapomme ton code est très bien il est rapide mais, ca se recopie sur une autre feuille
ça n'est malheureusement pas ce que je souhaite comme résultat
dommage car tu as bien bossé sur le truc
j'ai regardé ton code il est trop complexe pour moi pour que j'arrive à le modifier pour obtenir ce que je souhaite
je précise ma demande
sur mon classeur final il s'agit d'effacer les données suivantes
A5:A47 C5:AA47 AG5:AG47
A51:A93 C51:AA93 AG51:AG93
A97:A139 C97:AA139 AG97:AG139
ETC.....
soit un pas de 46 si je ne me trompe pas
le code devrait être plus simple à réaliser mais plus rapide, je n'en sais rien
j'ai du mal avec la syntaxe lors de l'utilisation de step
autrement la solution brute serait d'écrire
range("A5:A47 ,C5:AA47 ,AG5:AG47").ClearContents
mais pour 15000 lignes çà risque d'être un peu lourd
 
bonjour à tous

sur mon classeur final il s'agit d'effacer les données suivantes
A5:A47 C5:AA47 AG5:AG47
A51:A93 C51:AA93 AG51:AG93
A97:A139 C97:AA139 AG97:AG139
ETC.....
soit un pas de 46 si je ne me trompe pas
Re,
J'ai effectué la macro par pas de 46+1 :
Soit tu n'as pas regardé ma macro soit tu t'es mal exprimé !

Option Explicit

Sub supprimer()
Dim i As Long, j As Long, A As Long, D&
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
D = Timer
For i = 4 To 15000 Step 47
If Cells(i, 1) = "" Then Exit Sub
Range(Cells(i, 1), Cells(i + 45, 1)).ClearContents
Range(Cells(i, 3), Cells(i + 45, 27)).ClearContents
Range(Cells(i, 32), Cells(i + 45, 32)).ClearContents
If Cells(i + 46, 1).NumberFormat <> "m/d/yyyy" Then
MsgBox " Date mal placée " & Rows(i + 46)
Exit Sub
End If
Next i
MsgBox Format(Timer - D, "#,##0.00\ sec.")
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Bonne journée
 
dans mon dernier message c'est bien le format que je souhaite
les lignes 48 49 50 94 95 96 140 141 142 etc....
ce qui fait une zone de la ligne 5 à 47 à effacer ensuite une zone de la ligne 48 à 50 à conserver une nouvelle zone de la ligne 51 à 93 à effacer etc....
il est possible que je me sois emmèlé les pinceaux quelque part dans mes explications
 
Bonjour à tous, 🙂

Pour revenir à la question initiale, on peut utiliser la méthode SpecialCells
VB:
Sub test()
Dim myAreas As Areas, i As Long
    Set myAreas = Sheets("feuil1").Columns(1).SpecialCells(2, 2).Areas
    'Sheets("feuil1").Columns(1).SpecialCells(2, 2).Select
    For i = 1 To myAreas.Count
        myAreas(i).Select
        myAreas(i).Offset(, 2).Resize(, 25).Select
        myAreas(i).Offset(, 31).Select
    Next
End Sub
klin89
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
248
Réponses
5
Affichages
331
Retour