|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Bonjour,
Je rencontre un petit soucis dont je ne trouve pas solution sur le forum. Exemple sur deux colonnes (A et B pour l'exemple) : En cellule A1, j'ai la valeur A En cellule A2, j'ai la valeur B En cellule A3, j'ai la valeur C La cellule B1 correspond à la fusion des cellules B1, B2 et B3. Cette cellule fusionnée est valorisée à D J'aimerai, via VBA, être en mesure d'afficher le message suivant : "D=A,B,C" Techniquement parlant, je me positionne sur la cellule B1, et je récupère la valeur de la cellule A1 : Code :
ma_concat=Range("B1").Value & "=" & Range("B1").Offset(0,-1).Value Le problème est que ma variable ma_concat vaut "D=A", et non pas "D=ABC" Si quelqu'un a déjà solution à mon problème, son aide m'est plus que précieuse. Sachant que je ne connais pas à l'avance la position exacte des cellules fusionnées sur une feuille, je pense devoir dans un premier temps tester si la cellule "en cours" est une cellule fusionnée ou pas (via la propriété MergeCells). Cordialement |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu peux faire quelque chose dans le genre :
Code :
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||
|
|
10
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Pour info j'en suis arrivé à cela :
Code :
Je vois que nous avons à peut prêt la même solution, en revanche le : ne fonctionne pas chez moi...cela me renvoit du null. EDIT : Elle ne renvoi pas vraiment du null, car elle renvoi la valeur de la cellule A1, mais pas celle de A2 (Offset(2-1, -1), ni celle de A3 (Offset(3-1, -1))) Je viens d'essayer avec ta fonction, mais j'obtiens le même résultat... |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je suis assez étonné que ça ne marche pas. Essaie de faire un maCell.Offset(i - 1, -1).Address dans les espions pour chaque i pour voir.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Bonjour ZebreLoup,
Je viens d'essayer avec les espions, et les valeurs renvoyées sont toujours nulles. Je viens de faire un petit test et il s'avère que dans : Si "i" est = 2, le code ci-dessus renverra la valeur de la cellule "A4", Si "i" est = 3, le code ci-dessus renverra la valeur de la cellule "A5". Comme si il considérait que la fusion appliquée aux 3 lignes de la colonnes B est appliquée à la colonne A. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 694 ![]() |
Bonjour,
Une solution avec Code :
concat = concat & maCell.Offset(0, -1).Offset(i - 1, 0) & "," |
|
|
10
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Bon j'ai trouvé réponse à ma question sur un autre forum : http://www.access-programmers.co.uk/...d.php?t=168390
Apparemment le seul moyen d'obtenir la valeur d'une cellule en utilisant Offset depuis une cellule fusionnée et de se déplacer en colonne, puis en ligne (ou inversement). Ce qui donnerait dans mon cas : Code :
Cordialement. |
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Par contre, utilise plutôt la solution de gFZT82, ce n'est pas propre du tout de faire des Select et d'utiliser ActiveCell
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Merci gFZT82, et désolé je n'avais pas vu ta réponse.
Merci Zebre, je n'ai rien optimisé encore, mais j'en prends note! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com