Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2012, 14h46   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 2
Points : 2
Par défaut Récupération de la valeur d'une cellule fusionnée en colonne

Bonjour,

Deux jours que je suis sur ce problème, je jette donc ma bouteille à la mer en espérant qu'un regard neuf m'aidera.

Pour plus de lisibilité voila à quoi mon fichier ressemble :


Mon but est de faire une numérotation automatique du N° de stage.
La multiplicité des lignes pour le stage n°3 s'explique par le fait qu'un stage peut se dérouler sur plusieurs périodes, le nombre de ces périodes étant bien entendu variable.

Mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Dim StrTest As String 'Test pour cellule vide
Dim NumSta As String 'Dernier stage
Dim i As Integer 'indice
 
    While StrTest <> ""
        i = i + 1
        StrTest = Range("A" & i).text    'Recherche de la ligne vide pour continuer l'enregistrement
        NumSta = Range("B" & i).text    'Ce que contient la cellule N° de stage de la dernière ligne
        If NumSta = "" Then
            NumSta = Range("B" & i - 1).text
        End If
    Wend
Merci pour votre aide
liliesma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 15h21   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 756
Points : 1 756
Bonjour,
J'ai fait un petit test qui a l'air de fonctionner
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Sub test()
 Dim strtest As String, NumSta As Integer, i As Integer
 Dim ma As Variant
 
 ligne = 2
 NumSta = 1
 Do Until Sheets("Feuil1").Cells(ligne, 1) = ""
  Sheets("Feuil1").Cells(ligne, 2) = NumSta
  If Sheets("Feuil1").Cells(ligne, 2).MergeCells Then
    Set ma = Sheets("Feuil1").Cells(ligne, 2).MergeArea
    s = ma.Address
    ligne = Mid$(s, InStrRev(s, "$") + 1) + 1
  Else
    ligne = ligne + 1
  End If
  NumSta = NumSta + 1
 Loop
 
End Sub
à adapter.
MergeCells indique si la cellule est fusionnée
MergeArea va nous permettre par Address de retourner la plage fusionnée
Je récupère avec Mid$ la ligne de la dernière cellule fusionnée
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 15h29   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 2
Points : 2
Un très grand merci pour ta réponse qui règle totalement mon problème.

Bonne journée
liliesma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h58.


 
 
 
 
Partenaires

Hébergement Web