Descendre à la cellule suivante

[Résolu/Fermé]
Signaler
-
 Olive -
Bonjour,
Cela m'embête de vous demander un truc aussi simple mais je viens de débuter dans VBA.

Problème N°1 :
Je m'explique, j'ai une liste de nom de personnes comme ci-dessous et je voudrais utilisé une macro qui me permet de mettre en gras le dernier nom de la personne.

Nom1
Nom1
Nom1 => nom en gras
Nom2
Nom2
Nom2
Nom2 => nom en gras
Nom3
Nom3
Nom3
Nom3 => nom en gras
Nom4
Nom4 => nom en gras

En fait, j'ai un deuxième problème le voici :
Problème N°2 :
Mon nombre de ligne de ma liste est aléatoire toute les semaines donc des semaines je peux avoir 4 noms différents dans ma liste ou d'autres semaines je peux avoir une douzaines de noms différents. Mon problème, ici, est que je n'arrive pas à donner une limite aléatoire à ma macro.

Voici mon essai de macro :

Sub FR_NoircirVendeurs()

Dim Plage As Range
Dim Cellule As Range

Set Plage = Range("B2:...") => mon Problème N°2

For Each Cellule In Plage

If Cellule.Value = Cellule.Offset(1, 0).Value Then
Step 1 => mon problème N° se trouve ici (je pense)
End If
Next Cellule

If Cellule.Value <> Cellule.Offset(1, 0).Value Then
Cellule.Font.Bold = True
End If
Next Cellule

End Sub

J'espère que j'ai été assez clair dans mes explications.
Je vous remercie d'avance pour toutes aides que vous pourrez m'apportées.

Ps : merci à commentcamarche.net qui m'aide dans mon apprentissage à VBA.

1 réponse

Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
307
Bonjour Olive,
sans passer par VBA, tu peux mettre en gras le dernier nom en utilisant la mise en forme conditionnelle (mettre la cellule en gras si son contenu est différent du contenu de la cellule suivante)

si tu veux absolument passer par ta macro :
1°) supprime carrément cette partie, qui est incorrecte et ne sert à rien. Le For Each ... Next passe tout seul d'une cellule à la suivante, inutile d'en rajouter.
If Cellule.Value = Cellule.Offset(1, 0).Value Then
Step 1 => mon problème N° se trouve ici (je pense)
End If
Next Cellule

2°) Puisque tes cellules à traiter se suivent, utilise la fonction .End(xlDown) pour trouver la fin de ta plage. Ca revient à faire Maj+Ctrl+flèche du bas à partir de B2.
Set Plage = Range(Range("B2"), Range("B2").End(xlDown))

I.
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Bonjour Ivan-hoe, je te remercie pour ton aide qui m'a permis de me débloquer. J'ai utilisé la macro (qui marche très bien) parce que je n'ai pas su utiliser la mise en forme conditionnelle.
Peut-être que plus tard je ferais encore appel à ce forum.
A bientôt