Simplification Macro

Résolu
Manouchk -  
 Manouchk -
Bonjour,
J'ai finit une macro qui tourne bien et qui me satisfait. Cependant, je peux seulement la faire tourner sur des fichier de 500 lignes, 500 colonnes.
Quel est la syntaxe quand on veut une recherche de la dernière cellule non vide? En fait j'aimerais remplacer par exemple les Range "SG495", "SI", "SG"... par une recherche automatique de la première colonne vide ...
J'espère que ma demande parait claire!
J'ai essayé pas mal de synthaxe mais avec les différentes versions, je suis un peu perdu...
Pouvez vous m'aidez?




'Boucle : Compile tous les fichiers trouvés dans un même dossier'
While Len(Fichier) > 0
Workbooks.Open Chemin & Fichier
AvantDernièreLigne = ActiveSheet.UsedRange.Rows.Count - 1
Range("B2:SG495" & AvantDerniereLigne).Copy
Workbooks("Récap_P1C1.xlsm").Activate
Worksheets("Feuil1").Activate
DebutNomFichier = ActiveSheet.UsedRange.Rows.Count + 1
Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Workbooks(Fichier).Close
Fichier = Dir
Wend


' Calcul Macro Nombre de case non nulle'

Worksheets("Feuil1").Activate
Range("SG2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-500]:RC[-1],""<>255"")"
Range("SG2").Select
Selection.AutoFill Destination:=Range("SG2:SG" & ActiveSheet.UsedRange.Rows.Count), Type:=xlFillDefault
Range("SG2:SG" & ActiveSheet.UsedRange.Rows.Count).Select
ActiveWindow.SmallScroll Down:=-48

' Calcul Macro Volume estimé par ligne de pixels'
Worksheets("Feuil1").Activate
Range("SH2").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*0.05485^2)"
Selection.AutoFill Destination:=Range("SH2:SH" & ActiveSheet.UsedRange.Rows.Count), Type:=xlFillDefault
Range("SH2:SH" & ActiveSheet.UsedRange.Rows.Count).Select


' Calcul Macro Volume estimé par ligne de pixels'
Worksheets("Feuil1").Activate
Range("SI2").Select
ActiveCell.FormulaR1C1 = "=(((RC[-2]*0.05485)/2)^2)* 0.05485 *PI()"
Selection.AutoFill Destination:=Range("SI2:SI" & ActiveSheet.UsedRange.Rows.Count), Type:=xlFillDefault
Range("SH2:SH" & ActiveSheet.UsedRange.Rows.Count).Select


'Calcul Macro TOTALE Surface totale'
LigneTotal = ActiveSheet.UsedRange.Rows.Count + 2
Range("SF" & LigneTotal) = "TOTAL :"
Range("SH" & LigneTotal).FormulaLocal = "=Somme(SH2:SH" & LigneTotal - 1 & ")"

Range("SI" & LigneTotal).FormulaLocal = "=Somme(SI2:SI" & LigneTotal - 1 & ")"



A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

pour la dernière colonne
dercol = Cells.Find("*", , , , , xlPrevious).Column


Quelle est l'utilité d'écrire des formules, tu crées des tableaux ou tu fais des calculs ?
0
Manouchk
 
Merci pour cette réponse!
En fait, je colle des tableaux les uns à la suite des autres qui représentent des pixels unitaires d'image. Ensuite automatiquement grâce à la Macro je calcule des surface et des volumes de révolution.

Y a t il un problème à faire une macro avec création de tableau + calculs?
0