Macro pour sélection de plusieurs plages si

Bonjour le forum

Je cherche un code qui me permettrai de sélectionner plusieurs plages (de taille différente) dans la même feuille afin de les

mettre en forme

1-Je voudrais sélectionner toutes les plages commençant juste en dessous des cellules de la colonnes "A" qui contiennent "[Results]"

jusqu'à la dernière cellule de chaque tableaux afin de centrer toutes les cellules et d'appliquer des bordures.

2-Je voudrais sélectionner toutes les plages commençant par la cellule de la colonne "A" qui contient "PB:" jusqu'à la cellule "N" de la même ligne pour pouvoir là aussi appliquer de la mise en forme

Je joint un fichier et je précise que le nombre de tableaux pouvant être contenu dans la feuille travail peut être variable

D'avance je vous remercie pour votre aide et votre disponibilité

11envoiv2.xlsm (55.83 Ko)

Bonjour,

Voilà à essayer pour la question 1 [sans sélectionner ]

Sub MenFResults()
    Dim c As Range, c1 As String, n%, k%
    Application.ScreenUpdating = False
    With Worksheets("Travail")
        Set c = .Columns("A").Find("[Results]")
        If Not c Is Nothing Then
            c1 = c.Address
            Do
                k = c.Cells(2, 1).End(xlToRight).Column
                n = c.Cells(2, k).End(xlDown).Row
                With .Range(.Cells(c.Row + 1, 1), .Cells(n, k))
                    .HorizontalAlignment = xlCenter
                    With .Borders
                        .LineStyle = xlContinuous
                        .Weight = xlThin
                    End With
                End With
                Set c = .Columns("A").FindNext(c)
            Loop While Not c Is Nothing And c.Address <> c1
        End If
    End With
End Sub

Pour la 2e question, il faut préciser quelle mise en forme ?

Bonjour à tous

En s'en tenant à la simple sélection :

Bye !

22envoiv2-v1.xlsm (66.23 Ko)

Bonjour MFerranrd et gmb

Merci pour votre aide, votre disponibilité et pour la réactivité

je vais jeter un oeil à ce que vous m'avez répondu, j'ai continué en attendant des réponses et voilà ce que j'ai fais:

Sub fffff()
Dim cel
Dim plage As Range

Set plage = Range("A1:N1200")

For Each cel In plage
    If cel.Text = "PB:" Then

        cel.Interior.Color = RGB(102, 102, 153)

    End If
Next cel
End Sub

avec ça j'arrive à colorer une cellule n dans une plage , mais je n'arrive pas à définir une plage de cellules pour n sur la même ligne

juste pour vous montrer que je n'attends pas que quelqu'un me fasse le boulot

merci pour votre aide

Re,

Sub MenFPB()
    Dim c As Range, c1 As String
    Application.ScreenUpdating = False
    With Worksheets("Travail")
        Set c = .Columns("A").Find("PB:")
        If Not c Is Nothing Then
            c1 = c.Address
            Do
                .Cells(c.Row, 1).Resize(, 14).Interior.Color = RGB(102, 102, 153)
                Set c = .Columns("A").FindNext(c)
            Loop While Not c Is Nothing And c.Address <> c1
        End If
    End With
End Sub

Ok c'est super

du coup moi avec mon code j'étais loin

Pour MFerrand : pour la question 2

Remplissage en RGB (102, 102, 153) des cellules n entre les colonnes "A" et "N"

puis texte Arial , gras, taille 14 et couleur RGB(255, 255, 255)

et vraiment super

Pour gmb

j'avais pas pensé en version sélection, mais là aussi c'est super, par contre je vois que tu ne déclare pas les variables entre les "sub" mais avant

et là aussi vraiment super

je ne voudrais pas faire de jaloux alors j'adopte les deux

Merci beaucoup

Désolé MFerrand j'avais pas vu ton poste suivant mon code

merci beaucoup

Complétée :

Sub MenFPB()
    Dim c As Range, c1 As String
    Application.ScreenUpdating = False
    With Worksheets("Travail")
        Set c = .Columns("A").Find("PB:")
        If Not c Is Nothing Then
            c1 = c.Address
            Do
                With .Cells(c.Row, 1).Resize(, 14)
                    .Interior.Color = RGB(102, 102, 153)
                    With .Font
                        .Name = "Arial"
                        .Size = 14
                        .Bold = True
                        .Color = vbWhite
                    End With
                End With
                Set c = .Columns("A").FindNext(c)
            Loop While Not c Is Nothing And c.Address <> c1
        End If
    End With
End Sub

Je reviens à l'attaque,

MFerrand, ton 1er code pourrait-il être adapter, non pas pour les bordures de la plage sélectionnée, mais pour l'ensemble du tableau en partant de "[Header]" stp

Je remets une copie du fichier avec le résultat que je cherche à atteindre

merci pour votre aide

14envoiv2-v1.xlsm (42.44 Ko)

Résultat à obtenir à la place des deux autres ?

non juste l'encadrement

au lieu de faire des bordures à ce qui se trouve sous "[Results]" j'ai besoin d'encadré tout ce qui se trouve sous "[Header]"

merci de ton aide

Version adaptée à ton dernier schéma, mais stop aux changements de paramètres en permanence (passage de A à B, de N à M...)

Sub MenFPBCadre()
    Dim c As Range, c1 As String, n%
    Application.ScreenUpdating = False
    With Worksheets("Travail")
        Set c = .Columns("B").Find("PB:")
        If Not c Is Nothing Then
            c1 = c.Address
            Do
                With .Cells(c.Row, 2).Resize(, 12)
                    .Interior.Color = RGB(102, 102, 153)
                    With .Font
                        .Name = "Arial"
                        .Size = 14
                        .Bold = True
                        .Color = vbWhite
                    End With
                    .BorderAround xlContinuous, xlMedium
                End With
                n = .Cells(c.Row + 11, 9).End(xlDown).Row + 1
                .Range(.Cells(c.Row, 2), .Cells(n, 13)).BorderAround xlContinuous, xlThick
                Set c = .Columns("B").FindNext(c)
            Loop While Not c Is Nothing And c.Address <> c1
        End If
    End With
End Sub

Bonsoir MFerrand

Bonsoir le forum

Toutes mes excuses pour les modification que j'avais apporté sur le fichier, j'ai pas fais attention lorsque j'ai placé le fichier que j'avais modifié la présentation

Merci beaucoup ça fonctionne impec

c'est super

Merci

Rechercher des sujets similaires à "macro selection plages"