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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
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" a écrit dans le message de news:
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
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" <nospam_antoine.caurier@gmail.com.invalid> a écrit dans le message de news:
p-qdnedQZpZiDYrN4p2dnAA@giganews.com...
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
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" a écrit dans le message de news:
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
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
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
'''''
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
...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
...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
...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
...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
...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
...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
...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
...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
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
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.
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.
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
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!
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!
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!