Supprimer lignes entre B15 et B52

Bonjour

je souhaite supprimer des lignes entre B15 et B52.

Pour être plus clair, je joint un fichier.

Bien cordialement.

Bonjour

Avec ce code :

Sub test()
With ActiveSheet
    .Unprotect
    .Rows("15:52").Delete
    .Protect
End With
End Sub

Cordialement

Bonjour à tous,

Bien joué Dan tu as répondu au besoin textuel ! ;)

Sinon pour le fichier (où vous auriez du préciser dans votre corps de texte qu'il y avait plusieurs configurations possible, cf. fichier) :

Sub TRANSFO()
Application.ScreenUpdating = False
With ActiveSheet
    .Unprotect
    For L = 52 To 44 Step -1
        If Not .Cells(L, 2) Like "*[A-Z]*" Then
            .Cells(L, 2).EntireRow.Delete
            Else
            .Cells(L, 2).EntireRow.Insert xlDown
        End If
    Next L
    For L = 43 To 15 Step -2
        If Not .Cells(L, 2) Like "*[A-Z]*" Then .Cells(L, 2).Offset(-1).Resize(2).EntireRow.Delete
    Next L
End With
Application.ScreenUpdating = True
End Sub

Cdlt,

Bonsoir à tous les deux.

Oui, maintenant je comprend que Dan a répondu en fonction de la demande écrite.

Mon erreur était de penser que le fichier aurait été ouvert.

Merci à Dan d'avoir répondu.

Quant à Ergotamine, qu'est ce que j'envie votre employeur d'avoir une personne comme vous au sein de son entreprise.

Deux demandes..............deux réponses solutionnées du premier coup, qui répondent à la totalité de la demande et qui plus est, rapidement.

Quel bonheur.

Un grand merci.

Bien cordialement.

Bonjour Ergotamine.

J'ai un petit soucis sur les lignes supprimées.

J'ai bien retenu la leçon. Je met dans le corps du texte la raison.

Problème de minuscule.

Je vous joint un fichier pour essai.

Bien cordialement.

classeur-excel.xlsm

Bonjour,

Dans ce cas :

Option Explicit
Option Compare Text

Sub TRANSFO()
Dim L%
Application.ScreenUpdating = False
With ActiveSheet
    .Unprotect
    For L = 52 To 44 Step -1
        If Not .Cells(L, 2) Like "*[A-Z]*" Then
            .Cells(L, 2).EntireRow.Delete
            Else
            .Cells(L, 2).EntireRow.Insert xlDown
        End If
    Next L
    For L = 43 To 15 Step -2
        If Not .Cells(L, 2) Like "*[A-Z]*" Then .Cells(L, 2).Offset(-1).Resize(2).EntireRow.Delete
    Next L
End With
Application.ScreenUpdating = True
End Sub

Cdlt,

Un grand merci.

Impeccable

Re

Sur le fichier que je vous ai fait parvenir, cela fonctionne à merveille.

Lorsque je l'incorpore dans ma macro, j'ai le message "erreur de compilation".

Si je supprime option explicite et option compare text, ma ligne fenêtre f en minuscule est supprimée.

Est ce que je l'ai mal incorporé?

Ci-joint le fichier.

Bonne réception.

2ergotamine.xlsx (180.57 Ko)

Bonjour,

Ces 2 options doivent être au tout début du module, au dessus de la 1ère Sub.

Au vu du nombre de lignes de codes/modules que vous avez, vous pouvez retirer Option Explicit car vous utilisez probablement d'autres variables dans vos lignes et cette option force le dimensionnement de ces variables afin d'optimiser la mémoire prise par ces dernières sur le PC (et donc d’accélérer l’exécution du code) :

image

Cdlt,

Edit : Option Compare Text permet de supprimer la casse sur l'ensemble du code du module. Dans ce cas "A" sera traité de la même façon que "a", etc ...

Super, cela fonctionne avec mon classeur.

En vous remerciant pour le résultat obtenu et pour les explications et le pourquoi qui vont avec cette mise en application.

Bien cordialement.

Rechercher des sujets similaires à "supprimer lignes entre b15 b52"