Je suis vraiment débutant en VBA et je rencontre un petit problème.
Je souhaite appliquer une macro à l'ensemble des cellules (une par une) d'une séléction.
Cette macro comprend une boucle For Each.
Pour appliquer cette macro à chaque cellule de la sélection (ici : Rang("zone_d_impression")), j'ai fait une boucle intégrant la première boucle avec For Each.
Le message d'erreur de compilation "variable de contrôle For déjà utilisée" s'affiche sur le 2ème For Each (voir code ci-dessous).
Je crois comprendre qu'il me faut changer de "counter" pour chaque For, mais je ne sais pas comment...
Ci-dessous ma macro. Pourriez-vous SVP m'éclairer quant à une solution possible?
Je vous remercie énormément
Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
For Each CurrCell In Range("zone_d_impression")
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
.WrapText = True 'enclenche le renvoi à la ligne automatique (modif fs)
If .Rows.Count = 1 Then 'And .WrapText = True Then
Application.ScreenUpdating = True
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
Next CurrCell
End Sub
Il me faut un nom différent pour chacune des boucles. S'agit-il de CurrCell qui doit avoir un autre nom sur une des boucles ?
J'ai déjà essayé ceci:
Dim CurrCell as range
Dim cellule as range
For Each cellule In Range("zone_d_impression")
puis dans ta boucle
For Each CurrCell In Selection
Ça n'a rien donné
Pourrais-tu stp être plus précis ?
Merci beaucoup
Tu a aussi changé le nom dans le code concerné ?
Sinon je ne vois pas quel nom je devait changer
Il reste sur la cellule sélectionnée.