Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formule SI + FUSIONNER

10 réponses
Avatar
JBF
Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une macro. Et
je ne sais pas en faire alors si qq un peut m'expliquer clairement, ça
m'arrangerait.

Merci à tous.

10 réponses

Avatar
Daniel.C
Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une macro.
Et je ne sais pas en faire alors si qq un peut m'expliquer clairement, ça
m'arrangerait.

Merci à tous.



Avatar
JBF
merci je vais essayer ça de suite et te tiens au courant. Merci pour ton
aide.

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une macro.
Et je ne sais pas en faire alors si qq un peut m'expliquer clairement, ça
m'arrangerait.

Merci à tous.







Avatar
JBF
Merci ça marche. Je m'étais trompé je t'avais demandé une fusion verticale
[A1:A2] alors que je voulais en fait horizontale. Mais j'ai pigé le principe
j'ai modifié.

Par contre. Ca c'était pour me mettre en jambe et essayer de comprendre les
info que tu allais me fournir.

Maintenant je voudrais que cette macro fusionne B et C si A<>"GPL" et C="".
Il faudrait que cette macro s'execute sur l'ensemble des lignes (et non pas
juste sur la 2 comme dans mon premier exemple.)

Enfin, (j'ai l'impression de faire mes courses!) je suppose qu'il possible
d'executer une macro automatiquement sans passer par Outils/ macro / macros
/ executer? Dans ce cas comment faire?

J'aurais éventuellement une ou deux autres questions concernant la gestion
des macros mais je vais attendre d'avoir résolu la problématique qui
m'interesse pour l'instant et je verrais après quand tout ça marchera bien.

Merci bcp pour ta precieuse aide.

JBF

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une macro.
Et je ne sais pas en faire alors si qq un peut m'expliquer clairement, ça
m'arrangerait.

Merci à tous.







Avatar
Daniel.C
Essaie :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Pour exécuter directement la macro, il ya deux moyens; tu peux ajouter un
bouton de commande qui te permets de l'exécuter :
Menu Affichage, Barres d'outils, Boîte à outils contrôles. Clique sur le
bouton de commande, dessine-le en maintenant le bouton gauche de la souris
enfoncé. Clique sur "Visualiser le code et recopie ce qu'il y a ci-dessus
entre Sub test() et End Sub. Clique sur le bouton "désactiver le mode
création" et ferme la barre d'outils.
Tu peux aussi déclencher directement la macro en entrant des infos dans les
cellules de la colonne A. C'est un peu plus délicat. Si tu le souhaite,
fais-le moi savoir.

Daniel
"JBF" a écrit dans le message de news:

Merci ça marche. Je m'étais trompé je t'avais demandé une fusion verticale
[A1:A2] alors que je voulais en fait horizontale. Mais j'ai pigé le
principe j'ai modifié.

Par contre. Ca c'était pour me mettre en jambe et essayer de comprendre
les info que tu allais me fournir.

Maintenant je voudrais que cette macro fusionne B et C si A<>"GPL" et
C="". Il faudrait que cette macro s'execute sur l'ensemble des lignes (et
non pas juste sur la 2 comme dans mon premier exemple.)

Enfin, (j'ai l'impression de faire mes courses!) je suppose qu'il possible
d'executer une macro automatiquement sans passer par Outils/ macro /
macros / executer? Dans ce cas comment faire?

J'aurais éventuellement une ou deux autres questions concernant la gestion
des macros mais je vais attendre d'avoir résolu la problématique qui
m'interesse pour l'instant et je verrais après quand tout ça marchera
bien.

Merci bcp pour ta precieuse aide.

JBF

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une macro.
Et je ne sais pas en faire alors si qq un peut m'expliquer clairement,
ça m'arrangerait.

Merci à tous.











Avatar
JBF
Je te remercie ça marche impeccable. Je vais essayer le bouton pour executer
la commande mais je sais que dans un futur proche j'aurais besoin que la
fonction s'execute automatiquement dès lors que "GPL" apparaitra ds la
colonne A. On verra ça un peu plus tard.

Maintenant il ne me reste plus qu'a trouver une macro pour que lorsque
A="GPL" alors insérer une colonne entre E et F.

Si c une macro simple qui te prends 1 minute je suis preneur, sinon je
chercherais ulterieurement

En te remerciant,

JB


"Daniel.C" a écrit dans le message de news:

Essaie :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Pour exécuter directement la macro, il ya deux moyens; tu peux ajouter un
bouton de commande qui te permets de l'exécuter :
Menu Affichage, Barres d'outils, Boîte à outils contrôles. Clique sur le
bouton de commande, dessine-le en maintenant le bouton gauche de la souris
enfoncé. Clique sur "Visualiser le code et recopie ce qu'il y a ci-dessus
entre Sub test() et End Sub. Clique sur le bouton "désactiver le mode
création" et ferme la barre d'outils.
Tu peux aussi déclencher directement la macro en entrant des infos dans
les cellules de la colonne A. C'est un peu plus délicat. Si tu le
souhaite, fais-le moi savoir.

Daniel
"JBF" a écrit dans le message de news:

Merci ça marche. Je m'étais trompé je t'avais demandé une fusion
verticale [A1:A2] alors que je voulais en fait horizontale. Mais j'ai
pigé le principe j'ai modifié.

Par contre. Ca c'était pour me mettre en jambe et essayer de comprendre
les info que tu allais me fournir.

Maintenant je voudrais que cette macro fusionne B et C si A<>"GPL" et
C="". Il faudrait que cette macro s'execute sur l'ensemble des lignes (et
non pas juste sur la 2 comme dans mon premier exemple.)

Enfin, (j'ai l'impression de faire mes courses!) je suppose qu'il
possible d'executer une macro automatiquement sans passer par Outils/
macro / macros / executer? Dans ce cas comment faire?

J'aurais éventuellement une ou deux autres questions concernant la
gestion des macros mais je vais attendre d'avoir résolu la problématique
qui m'interesse pour l'instant et je verrais après quand tout ça marchera
bien.

Merci bcp pour ta precieuse aide.

JBF

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une
macro. Et je ne sais pas en faire alors si qq un peut m'expliquer
clairement, ça m'arrangerait.

Merci à tous.















Avatar
Daniel.C
La macro suivante insère une ligne à chaque fois qu'elle trouve "GPL" en
colonne A; est-ce bien cela que tu veux ?

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
cell.Offset(, 5).EntireColumn.Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Je te remercie ça marche impeccable. Je vais essayer le bouton pour
executer la commande mais je sais que dans un futur proche j'aurais besoin
que la fonction s'execute automatiquement dès lors que "GPL" apparaitra ds
la colonne A. On verra ça un peu plus tard.

Maintenant il ne me reste plus qu'a trouver une macro pour que lorsque
A="GPL" alors insérer une colonne entre E et F.

Si c une macro simple qui te prends 1 minute je suis preneur, sinon je
chercherais ulterieurement

En te remerciant,

JB


"Daniel.C" a écrit dans le message de news:

Essaie :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Pour exécuter directement la macro, il ya deux moyens; tu peux ajouter un
bouton de commande qui te permets de l'exécuter :
Menu Affichage, Barres d'outils, Boîte à outils contrôles. Clique sur le
bouton de commande, dessine-le en maintenant le bouton gauche de la
souris enfoncé. Clique sur "Visualiser le code et recopie ce qu'il y a
ci-dessus entre Sub test() et End Sub. Clique sur le bouton "désactiver
le mode création" et ferme la barre d'outils.
Tu peux aussi déclencher directement la macro en entrant des infos dans
les cellules de la colonne A. C'est un peu plus délicat. Si tu le
souhaite, fais-le moi savoir.

Daniel
"JBF" a écrit dans le message de news:

Merci ça marche. Je m'étais trompé je t'avais demandé une fusion
verticale [A1:A2] alors que je voulais en fait horizontale. Mais j'ai
pigé le principe j'ai modifié.

Par contre. Ca c'était pour me mettre en jambe et essayer de comprendre
les info que tu allais me fournir.

Maintenant je voudrais que cette macro fusionne B et C si A<>"GPL" et
C="". Il faudrait que cette macro s'execute sur l'ensemble des lignes
(et non pas juste sur la 2 comme dans mon premier exemple.)

Enfin, (j'ai l'impression de faire mes courses!) je suppose qu'il
possible d'executer une macro automatiquement sans passer par Outils/
macro / macros / executer? Dans ce cas comment faire?

J'aurais éventuellement une ou deux autres questions concernant la
gestion des macros mais je vais attendre d'avoir résolu la problématique
qui m'interesse pour l'instant et je verrais après quand tout ça
marchera bien.

Merci bcp pour ta precieuse aide.

JBF

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro, Macros,
clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à le
demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule. En
revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une
macro. Et je ne sais pas en faire alors si qq un peut m'expliquer
clairement, ça m'arrangerait.

Merci à tous.



















Avatar
JBF
Non ce n'est pas cela. Je souhaite ajouter une colonne et pas une ligne. Je
viens de poster une nouvelle demande pour ne pas (trop) t'embeter.

En fait ce qu'il me faudrait idéalement c'est que lorsque sur n'importe
quelle ligne de la colonne A il y a écrit "GPL" je
souhaite insérer une colonne entre la colonne E et la colonne F mais aussi
en insérer une entre H et J et enfin entre M et N.

Et ceci, en plus du fait qu'il faut fusionner les lignes B1 et C1 par
exemple mais ça tu m'as déjà donné la solution.

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à la formule que
tu m'avais donné?

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Merci.


"Daniel.C" a écrit dans le message de news:

La macro suivante insère une ligne à chaque fois qu'elle trouve "GPL" en
colonne A; est-ce bien cela que tu veux ?

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
cell.Offset(, 5).EntireColumn.Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Je te remercie ça marche impeccable. Je vais essayer le bouton pour
executer la commande mais je sais que dans un futur proche j'aurais
besoin que la fonction s'execute automatiquement dès lors que "GPL"
apparaitra ds la colonne A. On verra ça un peu plus tard.

Maintenant il ne me reste plus qu'a trouver une macro pour que lorsque
A="GPL" alors insérer une colonne entre E et F.

Si c une macro simple qui te prends 1 minute je suis preneur, sinon je
chercherais ulterieurement

En te remerciant,

JB


"Daniel.C" a écrit dans le message de news:

Essaie :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Pour exécuter directement la macro, il ya deux moyens; tu peux ajouter
un bouton de commande qui te permets de l'exécuter :
Menu Affichage, Barres d'outils, Boîte à outils contrôles. Clique sur le
bouton de commande, dessine-le en maintenant le bouton gauche de la
souris enfoncé. Clique sur "Visualiser le code et recopie ce qu'il y a
ci-dessus entre Sub test() et End Sub. Clique sur le bouton "désactiver
le mode création" et ferme la barre d'outils.
Tu peux aussi déclencher directement la macro en entrant des infos dans
les cellules de la colonne A. C'est un peu plus délicat. Si tu le
souhaite, fais-le moi savoir.

Daniel
"JBF" a écrit dans le message de news:

Merci ça marche. Je m'étais trompé je t'avais demandé une fusion
verticale [A1:A2] alors que je voulais en fait horizontale. Mais j'ai
pigé le principe j'ai modifié.

Par contre. Ca c'était pour me mettre en jambe et essayer de comprendre
les info que tu allais me fournir.

Maintenant je voudrais que cette macro fusionne B et C si A<>"GPL" et
C="". Il faudrait que cette macro s'execute sur l'ensemble des lignes
(et non pas juste sur la 2 comme dans mon premier exemple.)

Enfin, (j'ai l'impression de faire mes courses!) je suppose qu'il
possible d'executer une macro automatiquement sans passer par Outils/
macro / macros / executer? Dans ce cas comment faire?

J'aurais éventuellement une ou deux autres questions concernant la
gestion des macros mais je vais attendre d'avoir résolu la
problématique qui m'interesse pour l'instant et je verrais après quand
tout ça marchera bien.

Merci bcp pour ta precieuse aide.

JBF

"Daniel.C" a écrit dans le message de news:

Bonjour.
Une macro, effectivement, fera l'affaire.
Clique sur Outils, Macro, Visual Basic Editor.
La fenêtre Visual Basic s'ouvre.
Dans la partie gauche, clique sur le nom de la ligne qui porte le nom
VBAProject(nom de ton classeur)
Clique Sur Insertion, Module.
Dans la partie droite, colle les lignes suivantes :

Sub test()
If [A2].Value = "" Then
[A1:A2].MergeCells = True
End If
End Sub

Pour l'exécution, reviens dans Excel, clique sur Outils, Macro,
Macros, clique sur le nom de la macro (test) et sur "exécuter".
Ca fait ce que tu dis. Si tu veux plus de précisions, n'hésite pas à
le demander.
Cordialement.
Daniel
"JBF" a écrit dans le message de news:

Bonjour,

Est-il possible de dire que SI A1 contient une donnée et que A2 n'en
contient pas alors FUSIONNER A1 et A2 pour ne faire qu'une cellule.
En revanche ne pas fusionner si A1 et A2 sont renseignés tous deux.

Je pense que c'est effectivement possible mais en passant par une
macro. Et je ne sais pas en faire alors si qq un peut m'expliquer
clairement, ça m'arrangerait.

Merci à tous.























Avatar
Daniel.C
"JBF" a écrit dans le message de news:
uWmH%
Non ce n'est pas cela. Je souhaite ajouter une colonne et pas une ligne.
Je viens de poster une nouvelle demande pour ne pas (trop) t'embeter.

C'est pourtant ce que fait ma macro; l'instruction :


EntireColumn.Insert

Insère une colonne. Pas une ligne.

Daniel

Avatar
JBF
oui c vrai excuse moi je m'en suis aperçu après en lisant ta macro mais dans
ta question tu me demandais si c'est bien une ligne que je voulais insérer.

Quoi qu'il en soit, ça ne marche pas. Mais ça vient peut être de moi. Je ne
sais peut être pas comment l'associer à ma feuille Excel vu que quand
j'ouvre VBA j'ai toujours l'autre macro qui apparait. J'ai insérer un
nouveau module mais je n'arrive pas à insérer de nouvelle colonne en tt cas.

Merci

"Daniel.C" a écrit dans le message de news:
u11%

"JBF" a écrit dans le message de news:
uWmH%
Non ce n'est pas cela. Je souhaite ajouter une colonne et pas une ligne.
Je viens de poster une nouvelle demande pour ne pas (trop) t'embeter.

C'est pourtant ce que fait ma macro; l'instruction :


EntireColumn.Insert

Insère une colonne. Pas une ligne.

Daniel






Avatar
Daniel.C
Juste. Change le nom de la macro (sub xxx() ) tu ne peux pas en avoir avec
le même nom.
Daniel
"JBF" a écrit dans le message de news:

oui c vrai excuse moi je m'en suis aperçu après en lisant ta macro mais
dans ta question tu me demandais si c'est bien une ligne que je voulais
insérer.

Quoi qu'il en soit, ça ne marche pas. Mais ça vient peut être de moi. Je
ne sais peut être pas comment l'associer à ma feuille Excel vu que quand
j'ouvre VBA j'ai toujours l'autre macro qui apparait. J'ai insérer un
nouveau module mais je n'arrive pas à insérer de nouvelle colonne en tt
cas.

Merci

"Daniel.C" a écrit dans le message de news:
u11%

"JBF" a écrit dans le message de news:
uWmH%
Non ce n'est pas cela. Je souhaite ajouter une colonne et pas une ligne.
Je viens de poster une nouvelle demande pour ne pas (trop) t'embeter.

C'est pourtant ce que fait ma macro; l'instruction :


EntireColumn.Insert

Insère une colonne. Pas une ligne.

Daniel