Boucle for Next

Bonjour,

J'ai une carte avec une forme "Shapes.Range(Array("1"))"liée à la macro ci-dessous.

Mon fichier est sur une autre feuille et je voudrais répéter cette opération sur les 340 lignes suivantes

Sachant que chaque forme suit le numéro de l'ID

ID Commune INSEE1 CP Canton Intercommunalité

1 Adriers 86001 86430 L'Isle-Jourdain C.C. du Montmorillonnais

2 Amberre 86002 86110 Mirebeau C.C. du Mirebalais

3 Anché 86003 86700 Couhé C.C. de la Région de Couhé

4 Angles-sur-l'Anglin 86004 86260 Saint-Savin C.C. des Vals de Gartempe et Creuse

Sub Editeurs()

Sheets("Vienne").Shapes.Range(Array("1")).Select

With Selection.ShapeRange.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(0, 0, 0)

.Transparency = 0

.Solid

Sheets("Communes").Select

Range("H5").Select

If Range("h5") = "Cosoluce" Then

.ForeColor.RGB = RGB(255, 0, 0)

.Transparency = 0

.Solid

ElseIf Range("h5") = "BL" Then

.ForeColor.RGB = RGB(96, 96, 255)

.Transparency = 0

.Solid

ElseIf Range("h5") = "" Then

.ForeColor.RGB = RGB(255, 255, 255)

.Transparency = 0

.Solid

ElseIf Range("h5") = "Cégid" Then

.ForeColor.RGB = RGB(128, 0, 64)

.Transparency = 0

.Solid

End If

End With

Sheets("Vienne").Select

Bonjour,

Je n'aime pas le code enregistré ! Il faut l'épurer, en faire disparaître tous les Select, le ShapeRange, ... et un fichier sera nécessaire pour évaluer la configuration.

Cordialement.

Je suis débutant sur ve type d edéveloppement, lefichier est joint

5vienne.xlsm (894.16 Ko)

Re,

Sub Editeurs()
    Dim ws86 As Worksheet, clr, cmpt, i%, n%, c%, O$
    clr = Array(vbRed, RGB(96, 96, 255), RGB(128, 0, 64), vbWhite)
    cmpt = Array("Cosoluce", "BL", "CEGID")
    Set ws86 = Worksheets("Vienne")
    On Error Resume Next
    With Worksheets("Communes")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 5 To n
            O = CStr(.Cells(i, 1))
            For c = 0 To 2
                If cmpt(c) = .Cells(i, 8) Then Exit For
            Next c
            ws86.Shapes(O).Fill.ForeColor.RGB = clr(c)
        Next i
    End With
End Sub

Voilà la trame...

Petit rappel : Cégid et CEGID sont deux valeurs de type String, très différentes...

La manoeuvre doit rester sous gestion d'erreur, toutes les Id n'ont pas une forme associée...

On notera que certaines qui devraient ne se colorent pas ! C'est simplement que "069" ou "031" ce n'est pas "69" ou "31", et comme l'on fait cohabiter avec "1", il n'est pas possible d'avoir un résultat complet sans uniformiser les appellations...

A ceux qui n'ont pas pris soin de le faire au départ de réparer !

Cordialement.

NB- La macro n'est attachée à aucun bouton, mais j'ai implicitement pensé que si elle devait l'être, le bouton serait sur la feuille Communes...

5vs86963-vienne.xlsm (893.32 Ko)

Merci de ces précieuses indications.

Je m'y colle de suite et vous dit la suite

cordialement,

Rechercher des sujets similaires à "boucle next"