Bonjour,
Comme promis, voici votre macro (les premières lignes de la première partie) retravaillée.
' Macro 1 ********************************************************************
Dim i As Long, DerLig As Long
Application.ScreenUpdating = False 'Evite les rafraîchissement de l'écran entre 2 actions et augmente la vitesse d'exécution
DerLig = Range("A" & Rows.Count).End(xlUp).Row
Range("Q4").Value = "Prix" 'Ecrit Prix dans le titre de la colonne Q
Range("Q5:Q" & DerLig).FormulaR1C1 = "=MAX(RC[-5]:RC[-1])" 'Prend la plus grande valeur des 5 colonnes prix
Range("Q:Q" & DerLig).Copy Range("R1") 'on copie la plage de cellules de la colonne Q vers la colonne R
For i = DerLig To 5 Step -1 ' de la dernière ligne en remontant vers la cinquième
If Cells(i, 7).Value <> "MAISON" Then Rows(i).EntireRow.Delete 'Ne garde que la ligne où il est écrit MAISON ds la colonne nat cadastral
If Cells(i, 2).Value = "" Then Rows(i).EntireRow.Delete 'Enleve tout ce qui est vide dans la colonne type d'acte
If Cells(i, 43).Value = 0 Then Rows(i).EntireRow.Delete 'Enleve tout ce qui n'a pas de superficie utile
Next i
Columns("C:C,H:H,K:Q,S:AC,AR:AR,AU:AU,AV:AV,AX:AX,AY:AY,AZ:AZ,BA:BA").Delete 'suppression des colonnes
Range("B4:C4").Value = Array("TYPE", "DIV") 'application des titres
Range("Q4:W4").Value = Array("NbrG", "CC", "NbSDB", "NbLog", "NbPH", "SB", "SU") 'application des titres
Vous pouvez voir que tous les "SELECT" ont disparu.
Prenez la bonne habitude de déclarer les variables en début de macro.
Autre remarque, il est inutile d'encadrer les commentaires avec des apostrophes, seule l'apostrophe en début de phrase suffit.
Essayez de simplifier votre code en vous inspirant de cet exemple.
Cdlt