Effacer si condition et déplacer

Bonjour,

J’ai une base de données sous Excel du type ABCDE en x et 1 jusqu’à 10 966 en y sur laquelle je dois faire ceci :

Ligne 1 : à garder

Ligne 2 : à effacer

Ligne 3 : à effacer

Ligne 4 : à effacer sauf si il y a une donnée dans la colonne B , si oui déplacer la case B dans D, et centrer la donnée.

Et on recommence jusqu’à la fin.

A partir de la ligne 1554 jusqu’à la ligne 10966 (oui j’ai fais les 1 554 premières à la main…)

J’imagine qu’il doit être possible de créer une macro pour ça car je commence à avoir mal aux mains. J’ai cherché à créer une macro mais j’avoue patiner dur tout seul.

Si une bonne âme pour qui ça parait très simple pouvait m’aider, je lui serais très reconnaissant!

Salut,

Il faudrait un aperçu de ce que tu as et de ce que tu souhaites obtenir.

Copie quelques lignes à traiter et joint le fichier à cette demande.

Cela dit, il est vraiment dommage que tu aies attendu 1500 lignes pour chercher une méthode de traitement moins fastidieuse.

A+

Bonjour,

Quels sont les critères qui définissent ce qui est à garder et ce qui est à supprimer ?

Bonjour et bienvenue sur le forum

Bonjour à tous

Un essai en repartant du document initial.

Cela te convient-il ?

Bye !

24classeur1-v1.xlsm (24.31 Ko)

Merci pour vos réponses!

Je vous joins un exemple.

Dans mon exemple , je souhaite supprimer les lignes 2,3,4 puis 6.7, pas 8 car il y a une donnée donc à copier en D8 et centrer, puis on supprime 10,11, 12 etc...

ça fonctionne par bloc de 4 lignes.

13exemple.xlsx (9.36 Ko)
Chris73 a écrit :

Dans mon exemple , je souhaite supprimer les lignes 2,3,4 puis 6.7, pas 8 car il y a une donnée donc à copier en D8 et centrer, puis on supprime 10,11, 12 etc...

N'est-ce pas ce que fait la macro de mon essai ?

Bye !!

Alors, elle efface les cases mais elle ne supprime pas les lignes.

Chris73 a écrit :

Alors, elle efface les cases mais elle ne supprime pas les lignes.

Mais ne demandais-tu pas :

Ligne 1 : à garder

Ligne 2 : à effacer

Ligne 3 : à effacer

Ligne 4 : à effacer sauf si il y a une donnée dans la colonne B , si oui déplacer la case B dans D, et centrer la donnée.

Il faut appeler un chat ''un chat''.

Bye !

Effectivement, mea culpa.

J'aurais du parler de suppression et non d'effacement. Désolé de ne pas m'être exprimé correctement.

En tout cas, merci pour ta réponse et ton aide.

Nouvelle version à tester.

Bye !

19classeur1-v2.xlsm (24.62 Ko)

Merci!

On y est presque, ça marche mais ça me met la donnée en C au lieu de D.

J'ai tenté de modifier ton code comme ceci mais ça n'a pas fonctionner:

Sub Supprimer()

k = 1

While Range("A" & k) <> ""

Rows(k + 1 & ":" & k + 2).Delete shift:=xlUp

k = k - 2

If Range("B" & k + 3) <> "" Then

Range("C" & k + 3) = Range("B" & k + 3)

Range("B" & k + 3) = ""

Range("D" & k + 3).HorizontalAlignment = xlCenter

Else

Rows(k + 3).Delete shift:=xlUp

k = k - 1

End If

k = k + 4

Wend

End Sub

Désolé mais je ne comprends pas.

Sur mon fichier, donne moi un exemple de ce que tu veux obtenir...

Bye !

En tous cas, je te remercie du temps que tu m'accordes et je m'excuse de ne pas être pas très clair.

Je te remets mon fichier Exemple initial après utilisation de la macro. (Fichier exemple 2)

Tu vois que les données qui étaient en B sont passé en C alors je les voudrais en D.

Après si tu me demandes ce que je veux vraiment, j'ajouterais en plus si c'est possible (...) que que les cases A B C de la ligne dessus soit recopiés sur la ligne dessous. (Fichier exemple 3)

Et là ce serait parfait...

3exemple-2.xlsx (9.02 Ko)
5exemple-3.xlsx (9.09 Ko)

Ta modif est incomplète :

Sub Supprimer()

    k = 1
    While Range("A" & k) <> ""
        Rows(k + 1 & ":" & k + 2).Delete shift:=xlUp
        k = k - 2
        If Range("B" & k + 3) <> "" Then
            Range("D" & k + 3) = Range("B" & k + 3)
            Range("B" & k + 3) = ""
            Range("D" & k + 3).HorizontalAlignment = xlCenter
        Else
            Rows(k + 3).Delete shift:=xlUp
            k = k - 1
        End If
        k = k + 4
    Wend
End Sub

Quant à ta nouvelle demande, sans exemple...

Bye !

C'est parfait! ça marche!

Encore merci du temps pris pour m'aider !!!

Je vais en rester là. Sujet résolu.

Rechercher des sujets similaires à "effacer condition deplacer"