Probleme d'arret de macro

D

dj.run

Guest
Bonjour à toutes et à tous,

je viens vers vous car je rencontre un petit probleme (de debutant), j'ai fait une macro qui s'execute bien mais elle ne s'arrete pas sauf si je fait "echap"

si quelqu'un pouvait me dire ou ça cloche, je l'en remercie d'avance.

pj fichier ( ça peut aider . lol !)

@+ dj.run
 

Pièces jointes

  • test.zip
    41.2 KB · Affichages: 11
  • test.zip
    41.2 KB · Affichages: 12
  • test.zip
    41.2 KB · Affichages: 10
T

Ti

Guest
Les mélanges ActiveCell et décalages, ça ne donne jamais rien de bon, il vaut mieux travailler sur des Offset et supprimer ces incrémentations manuelles de lignes à coups de Range("e2:e" & l) qui relèvent du bricolage, même si on les voit souvent dans des macros qui se veulent des exemples à suivre.
De plus, comme tu travailles toujours sur la sélection, ta boucle n'avance jamais, ce qui fait qu'elle tourne sans fin (éviter de travailler sur les sélections).

En tout cas, voilà ta macro corrigée, elle ira plus vite.

Option Explicit

Sub Test()
'Ti
Dim Cel As Range, plage As Range
Application.ScreenUpdating = False
With ActiveSheet
Set plage = .Range("A2", .Range("A2").End(xlDown))
End With

For Each Cel In plage
If Cel.Value <> "" Then
With Cel
.Offset(0, 4).FormulaR1C1 = "=IF(RC[-4]="""","""",IF(RC[-4]=""av"",-RC[-1]/100,RC[-1]/100))"
.NumberFormat = "0.00_ ;[Red]-0.00 "
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
End If
Next Cel
Application.ScreenUpdating = True
End Sub
 
D

dj.run

Guest
re à tous,

Merci Mr Ti, pour tes conseils et ta correction, je vais appliquer cela à mon projet .

En fait cela marche mais, il y a toujours un mais, c'est assez lent et ça ne me met pas le format de cellule, nombre, decimale 2, si nombre negatif "rouge".

mais je vais essayer de trouver tout seul quitte à faire une petite macro pour le format .

un grand merci à toi Ti.

@+ dj.run
 
D

dj.run

Guest
re

Ti, je ne connaissais pas "application.Calculation =xlCalculationManual ",

en effet c'est plus rapide, je suppose que pour remettre les paramètres c'est : application.Calculation =xlCalculationAutomatic .

encore une fois merci.

si je n'abuse pas trop de ta gentillèse, je cherche avec une macro la possibilité de supprimer la derniere ligne de mon tableau après l'avoir importé (source fichier .txt) . j'ai trouvé pas mal d'exemple dans la recherche du forum mais je n'arrive pas à l'appliquer à mon projet .

merci pour ton aide .

@+ dj.run
 
T

Ti

Guest
je suppose que tu connais la première ligne de ton tableau, disons qu'elle est en A2, pour trouver la dernière ligne, c'est comme dans l'autre macro. Pour faire simple, voici comment supprimer la ligne entière :

dim Ligne as Range
Set Ligne = Range("A2").End(XldDown)
Ligne.EntireRow.Delete
 
D

dj.run

Guest
re,

en effet pour faire simple et efficasse, j'avais trouvé une solution mais plus compliquée donc je suppose plus lente .

ma solution

Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
ActiveCell.Offset(rowOffset:=-1).Activate
Range(ActiveCell.EntireRow, ActiveCell.End(xlDown)).Select
Selection.Delete Shift:=xlUp

mais je vais oppter pour ta solution Ti et encore un merci

Bon j'espere que maintenant je vais y arriver tout seul .

sinon vous allez me revoir .

@+ dj.run
 

Discussions similaires