macro incompetente!!!

  • Initiateur de la discussion tibo
  • Date de début
T

tibo

Guest
Salut a tous les fanatiques d'excel (oui je sais ce n'est par choix)!

J'ai encore un petit probleme avec une macro de m....., je ne vois pas ce qu'elle peut avoir qui cloche! Je vous la donne si vous y voyez plus claire que moi, libre a vous de commenter!

=====================================================

Sub deljan()

'
' deljan Macro

Application.ScreenUpdating = False

Dim i As Integer
i = 1
Sheets("3_Mths").Select
For i = 1 To 1000
If Month(Range("N" & i + 3)) = 2 Then
Range("A" & i + 3, "O" & i + 3).Select
Selection.Delete Shift:=xlUp
End If

Sheets("12_Mths").Select
If Month(Range("N" & i + 3)) = 2 Then
Sheets("12_Mths").Select
Range("A" & i + 3, "N" & i + 3).Select
Selection.Delete Shift:=xlUp
End If
Next i
Sheets("12_Mths").Select
End Sub

=====================================================

En fait elle m'efface que certaines des lignes qui verifient la condition ennocee, a savoir : "month () =2"!

Ca c'est pour Alain, Alain il a toujours la solution a tous les problemes de macro! lol!

Merci a tous!


Thibaut
 
Z

zon

Guest
Re,


Tibo il y qqch d'autre qui ne va pas dans ton code, tu te sers de la meme boucle pour verifier si dans 2 feuilles le mois est fevrier:

Je fairais plutôt comme cela, j'en profite pour en lever tous tes select qui ralentisse le code dans le cas présent. Par ailleurs ici il y a des . devant les range car on travaille sous un with.
Enfin pourquoi demarrer i à 1 et lui rajouter 3 dans le code, autant le démarrer à 4

sub Dejran()
dim i as integer
Application.ScreenUpdating = False
with Sheets("3_Mths")
For i = 4 To .[N65536].End(xlUp).Row 'ICI recupere le N° de la derniere ligne utilisée
If Month(.Range("N" & i)) = 2 Then .Range("A" & i, "O" & i).Delete: i = i - 1
Next i
End with
with Sheets("12_Mths")
For i = 4 To .[N65536].End(xlUp).Row 'ICI recupere le N° de la derniere ligne utilisée
If Month(.Range("N" & i)) = 2 Then .Range("A" & i, "O" & i).Delete: i = i - 1
Next i
End with
Application.ScreenUpdating = true

end sub




A+++
 
T

tibo

Guest
Hallucinant!!!

Merci Zon, t'es trop un BOSS!

J'ai jamais vu une macro aussi rapide sur mon vieil ordi, et en plus elle fait ce que je lui demande!
(comme tu auras pu le constater je n'y connais a peu pres rien en matiere de macro, donc je remercie Dieu d'avoir cree les forums!)
 

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa