Macro pour grouper des lignes

Bonjour à tous,

J'aurai besoin d'une petite aide pour une macro sur Excel 2010.

Je souhaite créer un tableau de bord d’événement où le nombre de participant varie entre chaque événement.

Après avoir rempli la 1ère ligne propre à l'événement (date, titre, thème, ...), l'utilisateur ajoute des participant en insérant des lignes avec une macro.

Ce que je voudrais réaliser, c'est une macro qui groupe automatiquement les participant d'un même événement ensemble.

J'ai donc réalisé cette macro qui interagi avec l'utilisateur pour pallier la variation de participant, un problème y figure mais je ne sais pas où.

Voici ma macro :

Sub Grouper_Ligne()

Dim Plage As String

a = InputBox("Numéro de la première ligne du regroupement")

b = InputBox("Numéro de la dernière ligne du regroupement")

Plage = "a:b"

Rows(Plage).Select

Selection.Rows.Group

Selection.EntireRow.Hidden = True

End Sub

Si vous pouvez m'aider/m'éclairer pour que cette macro fonctionne je vous serai reconnaissant .

Cordialement,

Paul

Salut,

Sub Grouper_Ligne()

Dim Plage As String

a = InputBox("Numéro de la première ligne du regroupement")
b = InputBox("Numéro de la dernière ligne du regroupement")

Plage = a & ":" & b

Rows(Plage).Select

Selection.Rows.Group
Selection.EntireRow.Hidden = True

End Sub

il ne faut pas mettre les variables entre guillemets sinon ils seront considérés comme du texte

Merci beaucoup nono

Après avoir passé du temps sur les macros je ne vois plus rien

Pas de soucis

Par contre, il vaut mieux automatiser le traitement pour éviter de faire participer l'utilisateur et annuler le risque d'erreur.

Du genre

For i = premère ligne to denière ligne

if évènement = "blablabla" then stocker l'emplacement dans une variable

variable.select

on peut voir ça ensemble si tu veux mais sans fichier exemple je ne peux pas faire des miracles

D'accord, je te joins mon fichier.

Je t'avoue ne pas avoir pensé de faire de boucle ...

179tdb-test.xlsm (106.91 Ko)

Une petite question:

Event est systématiquement rempli une seule fois?

Oui, event est unique, il est forcément rempli et une seule fois

Ok ça rend les choses plus simples.

Je te fais un retour demain.

Ca marche, merci

Salut,

Dis moi si ce code te va:

Option Explicit
Option Base 1

Sub test_group()

Dim i As Integer
Dim Derline As Integer
Dim FgrpLine As Integer
Dim LgrpLine As Integer

Derline = Application.WorksheetFunction.CountA(Columns(3))

FgrpLine = 3

For i = 3 To Derline
    If Cells(i, 2).Value <> "" Then
    LgrpLine = i - 1
    Rows(FgrpLine & ":" & LgrpLine).Select
    Selection.Group
    Selection.EntireRow.Hidden = True
    FgrpLine = i + 1
    End If
    If i = Derline Then
    Rows(FgrpLine & ":" & Derline).Select
    Selection.Group
    Selection.EntireRow.Hidden = True
    End If
Next i

End Sub

A+

Ton code fonctionne seulement avec le premier event (lorsque tu fais référence à la ligne 3) mais en réalité je serai amené à insérer plusieurs event.

Du coup à la place de mettre

FrgpLine = 3

Je devrais plutôt mettre quelque chose du type

FrgpLine = 'Ligne du premier participant'

Qu'en penses-tu ?

Je l'ai testée sur 3 évents ça a marché.

Le 3 sert seulement à initier le premier événement avant de rentrer dans la boucle qui est sensée traiter le reste.

150tdb-test.xlsb (44.07 Ko)

Ah oui d'accord, ça fonctionne

Merci de ton aide précieuse

Rechercher des sujets similaires à "macro grouper lignes"