Formules sur des cellule fusionnées

Le
antoinec Hors ligne
Bonjour,
Je voudrais savoir si il est possible, et si oui comment, de faire des formules automatiques sur des cellules fusionnées de la manière suivante:

Mettons que la colonne A contienne des cellules fusionnées, mais pas toutes du même nombre de lignes.

Si l'une des cellules de la colonne B "en face" de la cellule fusionnée de la colonne A, est non vide, alors la cellule A vaut "OK"

Je vois bien comment faire la formule à la main, mais j'ai un tableau qui fait plusieurs centaines de lignes

Merci de vos réponses
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #24670421
Bonjour,
Je propose un peu de VBA
'-----------------
Sub jj()
derlg = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To derlg
If Cells(i, 1).MergeCells Then
For Each c In Cells(i, 1).MergeArea
If c.Offset(0, 1) <> "" Then
Cells(i, 1) = "OK"
i = i + Cells(i, 1).MergeArea.Count - 1
Exit For
End If
Next
End If
Next
End Sub
'----------------------
--
Salutations
JJ


"antoinec"
Bonjour,
Je voudrais savoir si il est possible, et si oui comment, de faire des formules
automatiques sur des cellules fusionnées de la manière suivante:

Mettons que la colonne A contienne des cellules fusionnées, mais pas toutes du
même nombre de lignes.

Si l'une des cellules de la colonne B "en face" de la cellule fusionnée de la
colonne A, est non vide, alors la cellule A vaut "OK"

Je vois bien comment faire la formule à la main, mais j'ai un tableau qui fait
plusieurs centaines de lignes

Merci de vos réponses
gmlsteph
Le #24670531
Bonjour,

A mon humble avis par les fusions de cellules,on s'assure une mauvaise orga nisation des données, s pertes de références lors de tentatives de tr i.
De ne pas pouvoir utiliser la plupart des fonctions correctement et de se p river des fonctions avancées. Bref c'est à proscrire pour u bon usage d 'Excel.
Faire des tableaux dans Word serait "moins pire".

Pour bien comprendre il faut imaginer être dans une table de base de donn ées.
Si seule la première cellule d'une plage de A contient une valeur pour un bloc de cellules dans B. Seul la premiere cellule de ce bloc en B réfè re à la valeur en A, les autres "enregistrements" sont orphelins.

Si l'une des cellules de la colonne B "en face" de la cellule fusionnée de la
colonne A, est non vide, alors la cellule A vaut "OK"


Une formule en B ne donne de valeur qu'en B
Dès lors que tu fusionnes des cellules en A supposons A5 A6 A7 A8
Seul le contenu de A5 est conservé, ainsi tu n'as plus rien ni formule en A6 A7 A8, seul A5 conserve une valeur en regard de B5.
B6,B7,B8 sont orphelines.

Ce que tu cherches à faire selon ce que j'en comprends passerait par l'ut ilisation de VBA,

'dans codemodule de la feuille concernée:

''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, mrgP As Range, c As Range
Set iSect = Intersect([b2:b10000], Target)
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In [b2:b10000].Cells
If Not IsEmpty(c) Then
Set mrgP = Range(c.Offset(0, -1).Address).MergeArea

mrgP.Cells(1, 1).Value = "Ok"
End If
Next
Application.EnableEvents = True
End Sub
'''''

'LSteph
gmlsteph
Le #24670611
...petite rectif(et précision c'est jusqu'à ligne 10000, à adapter)


Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, mrgP As Range, c As Range
Set iSect = Intersect([b2:b10000], Target)
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
[a2:a10000] = ""
For Each c In [b2:b10000].Cells
If Not IsEmpty(c) Then
Set mrgP = Range(c.Offset(0, -1).Address).MergeArea

mrgP.Cells(1, 1).Value = "Ok"
End If
Next
Application.EnableEvents = True
End Sub
gmlsteph
Le #24670521
...rectif et précision pour le nb de ligne tu adaptes:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, mrgP As Range, c As Range
Set iSect = Intersect([b2:b10000], Target)
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
[a2:a10000] = ""
For Each c In [b2:b10000].Cells
If Not IsEmpty(c) Then
Set mrgP = Range(c.Offset(0, -1).Address).MergeArea

mrgP.Cells(1, 1).Value = "Ok"
End If
Next
Application.EnableEvents = True
End Sub
gmlsteph
Le #24670601
...ca ne s'affiche pas correctement je re poste:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, mrgP As Range, c As Range
Set iSect = Intersect([b2:b10000], Target)
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
[a2:a10000] = ""
For Each c In [b2:b10000].Cells
If Not IsEmpty(c) Then
Set mrgP = Range(c.Offset(0, -1).Address).MergeArea

mrgP.Cells(1, 1).Value = "Ok"
End If
Next
Application.EnableEvents = True
End Sub
antoinec Hors ligne
Le #24670651
Le mardi 31 Juillet 2012 à 09:59 par antoinec :
Bonjour,
Je voudrais savoir si il est possible, et si oui comment, de faire des formules
automatiques sur des cellules fusionnées de la manière suivante:

Mettons que la colonne A contienne des cellules fusionnées, mais pas
toutes du même nombre de lignes.

Si l'une des cellules de la colonne B "en face" de la cellule
fusionnée de la colonne A, est non vide, alors la cellule A vaut
"OK"

Je vois bien comment faire la formule à la main, mais j'ai un tableau
qui fait plusieurs centaines de lignes

Merci de vos réponses


Whooo ;-)
Je vais regarder pour le VBA, meme si je ne suis pas un expert et que j'aurais préféré faire ca en formule excel!
Et pour le fait que les cellules fusionnées ce n'est pas le meilleur à faire, malheureusement, je ne maîtrise pas la donnée d'entrée. Elle m'est fournie par un fournisseur externe!
Mais merci pour vos réponses.
antoinec Hors ligne
Le #24673091
Le mardi 31 Juillet 2012 à 09:59 par antoinec :
Bonjour,
Je voudrais savoir si il est possible, et si oui comment, de faire des formules
automatiques sur des cellules fusionnées de la manière suivante:

Mettons que la colonne A contienne des cellules fusionnées, mais pas
toutes du même nombre de lignes.

Si l'une des cellules de la colonne B "en face" de la cellule
fusionnée de la colonne A, est non vide, alors la cellule A vaut
"OK"

Je vois bien comment faire la formule à la main, mais j'ai un tableau
qui fait plusieurs centaines de lignes

Merci de vos réponses


Bon et bien ca marche.
J'ai pu adapter les formules pour mon besoin exacte. Mais c'est bien ce que je voulais.
Merci!
Publicité
Poster une réponse
Anonyme