Bonjour,
je possède des cellules fusionnées dans les colonnes et je souhaite tout simplement récupérer l'adresse de fin des cellules. Connaissez vous une commande simple ?
Merci
Bonjour,
je possède des cellules fusionnées dans les colonnes et je souhaite tout simplement récupérer l'adresse de fin des cellules. Connaissez vous une commande simple ?
Merci
il y a un truc vraiment bien pour trouver des solutions pas trop complexes: l'enregistreur de macro.
tu simule ce que tu voudrais faire puis après tu étudie le code.
Sinon, pour ce qui est du fusionnage de case, si tu fusionne par exemple la case H10 avec H11, et admettons que tu veuilles selectionner la case que tu vient de fusionner tu fais:
en fait ca se comporte comme sil resté 2 case distincte en vba.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Range("H10:H11").Select
En fait, quand deux cellules sont fusionnées, la valeur est seulement dans la première...et je suis pas censé savoir les adresses exactes de mes cellules. Mais j'ai réglé mon problème avec un .Row.Count
Merci
J'ai peut etre parlé un peu trop vite
En fait j'ai une colonne A faite de plusieurs cellules fusionnées. J'aimerai passer de cellule en cellule, jusqu'à la dernière.
Mais malheureusement, selection.value ne marche pas dans ce cas là.
je ne comprend pas bien ce que tu veux vraiment faire remplir des valeurs ou juste savoir quelle est la dernière cellule fusionné de la colonne?
sinon pour entrer des valeur dans une cellule fusionner:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 'selectionne la cellule "A2:A3" qui est une fusion de A2 avec A3 Range("A2:A3").Select 'entre la nouvelle valeur de la case ActiveCell.FormulaR1C1 = "3"
J'ai un tableau avec des cellules fusionnées de longueur variables en colonne A. En colonne B, il y a des valeurs spéciales pour chaque cellule fusionnée correspondante.
Ce que je veux faire c'est une boucle avec un test sur chaque cellule en colonne B correspondant à la cellule fusionnée en colonne A. Puis passer à la cellule fusionnée de dessous, et repeter ces tests sur les cellules en colonne B correspondantes.
C'est pas trop facile à expliquer mais j'espère que tu as compris.
dans la colonne B les cellules sont fusionné?
Non..Je t'ai fais un exemple :
Et je dois m'arreter à la fin du tableau...
je ne comprend pas bien ce que tu ve faire.
il faudrait que tu me dise:
- tu ve tester des cases dans la colonne B mais sont-elle fusionné ou non?
- puis aprés que veux tu faire si ton test est true ou false?
- et tu compare les cellule avec koi? une autre cellule ou une valeur?
sinon en attendant ta réponse:
ouvre un fichier excel vierge puis fusionne la case A1 avec la case A2 ensuite rentre les valeurs suivante:
dans A1:A2 tu mets 1
dans B1 tu mets 1
puis copie ce code et étudie le peut etre suivant ce que tu veux réalisé il t'aidera:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim a1 As Range, a2 As Range For i = 1 To 100 u = i + 1 Set a1 = Range("B" & i) Set a2 = Range("B" & u) Range("a1:a2").Select 'il existe bien des facon de tester, celle-ci dessous risque de ne servir a rien suivant ce que tu veux faire après... ActiveCell.FormulaR1C1 = "=IF(R[1]C[-1]=R[1]C[1],2,3)" Next i
ok je vien de voir ton screen, en fait tu ve tou simplement lancer un test avec une boucle et l'arreter a la fin de la derniere cellule coller a la cellule fusion puis tu le recommencera pour toute les cellule de B qui sont coller le long de la cellule fusionner après. c'est ca?
peux pas accéder a l'exemple de mon boulot, proxy pas content
tu peux joindre un fichier xls ou zip stp ? juste pour qu'on puisse voir l'allure de ta feuille ?
je crois avoir une idée pour toi:
si tes cellule de la colonne A s'appelle toute admettons cel1,cel2,...,celn
tu pourrais essayer de tester le nom de la case dans A coller à celle dans B
avec par exemple un: right(cellule ou tu es en B,cellule en A, 1)
ca te sors le numero de la case fusionnée
ensuite tu le stock et tant que ce numero ne change pas tu effectue ton test sur les case de la colonne B
ensuite dés qu'il change, tu recommence avec le test qui concerne la case fusionner suivante
tu vois ce que je ve dire?
un truc a savoir sur les cellules fusionnées:
le fait de fusionner 3 cellules ne fait que masquer les 2 suivantes pour ne laisser apparaître que la valeur de la première. Rien n'empêche en VBA de tester la valeur d'une cellule faisant partie de la fusion.
Désolé je n'ai pas pu répondre avant...
J'ai mis un .zip en pièce jointe pour exemple, le .xls ne passant pas
Donc oui biggione tu a tout à fait compris. En fait, au départ de ma fonction j'ai 2 villes. Je dois déterminer leur pays. Pour celà, je voulais à partir d'un pays en colonne A, effectuer une boucle dans la colonne B pour faire mes tests, puis passer à l'autre pays (donc la cellule fusionnée suivante).
En résultat, je dois bien sur retourner le ou les pays d'appartenance.
Mais Commodore_Psykopate, si je fais sur mon exemple :
La valeur sera égale à nulle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Range("B4").select Selection.offset(0,-1).value
essaye ceci:
en H10 il t'affichera la valeur correspondante à la cellule B4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Sub test() i = 0 While Range("b4").Offset(i, -1).Value = Empty i = i - 1 Wend Range("H10") = Range("b4").Offset(i, -1).Value End Sub
C'est une solution en effet...Je pensais plutôt faire une boucle pour chaque pays, testant les villes, mais avec ta solution je fais une boucle sur toutes les villes, récupérant les pays par la suite.
Je vais voir si mon code tourne bien avec ça, merci !
alors ca marche ou pas?
Pensez à mettre Résolu si c ok...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager