Formule .CurrentRegion

Bonjour ,

Ci-joint mon problème

J'avais déjà posté un sujet (Feuil1) qui a été résolu par une macro mais en voulant l'adapter à mon fichier initial (Feuil2) la macro rencontre une erreur. Je pense qu'elle vient de la formule .CurrentRegion et le fait qu'il y ait des cellules avec un contenu autour de la plage sélectionnée. Mais je ne sais pas comment l'adapter.

Merci d'avance si vous avez une idée !

Bechamelle

8bechamelle2.xlsm (19.70 Ko)

Bonjour,

Un essai ...

Sub Macro2()
Dim O As Worksheet 'déclare la variablre O (Onglet)
Dim TV As Variant 'déclare la variablre TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variablre TL (Tableau des Lignes)
Dim I As Integer 'déclare la variablre I (Incrément)
Dim J As Integer 'déclare la variablre J (incrément)
Dim K As Integer 'déclare la variablre K (incrément)

Set O = Worksheets("Feuil2") 'définit l'onglet O (à adapter)
O.Range("G9:G100").ClearContents 'vide les cellules G9 à G100 de l'onglet O
TV = O.Range("A9").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then 'si la donnée ligne I colonne 1 contient un tiret
        K = K + 1 'incrémente K
        ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes TL
    Else 'sinon
        If K <> 0 Then TL(K) = TL(K) + 1         'définit la valeur de TL(K)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    'si la donnée ligne I colonne 1 contient un tiret, renvoie la valeur de TL(J+1), incrémente J
    If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then O.Cells(I + 7, "G").Value = TL(J + 1): J = J + 1
Next I 'prochaine ligne de la boucle
End Sub

ric

Bonjour le fil, bonjour le forum,

Bizarre, je connais ce code...

Rechercher des sujets similaires à "formule currentregion"