Fusion de colonne suivant nombre 1 ou 2

Bonjour,

j'aimerais votre aide pour résoudre mon problème.

J'ai sur une première feuille de calcul une colonne de produits (A,B,C etc..) en face je fait correspondre un nombre 1 ou 2 uniquement.

Sur une deuxième feuille de calcul j'ai crée une liste déroulante avec mes produits.

J'aimerais qu'automatiquement la mise en forme soit faite en suivant le nombre correspondant au produit.

Je m'explique:

Le produit A à le nombre 1 donc il est mis sur une colonne

Le produit B à le nombre 2 donc il doit fusionner deux colonnes pour prendre deux "places"

Le produit C à le nombre 2 donc il doit fusionner deux colonnes pour prendre deux "places"

Le produit D à le nombre 1 donc il est mis sur une colonne

etc etc...

je vous joint un fichier pour mieux vous rendre compte de ce que je veut faire .

Merci beaucoup

ps:j'ai excel2016 avec windows10

Salut flagg et

un essai

Sub mergeCell()
Dim DerLign As Long, j As Integer
Application.ScreenUpdating = False

DerLign = Worksheets("Feuil1").UsedRange.Row - 1 + Worksheets("Feuil1").UsedRange.Rows.Count
With Worksheets("Feuil2")
j = 2
For i = 1 To DerLign

If Cells(i, 2).Value = 1 Then
.Cells(3, j).Value = Worksheets("Feuil1").Cells(i, 1).Value
.Cells(3, j).HorizontalAlignment = xlCenter
j = j + 1
Else

.Activate
.Range(.Cells(3, j), .Cells(3, j + 1)).merge
.Cells(3, j).HorizontalAlignment = xlCenter
.Range(.Cells(3, j), .Cells(3, j + 1)).Copy
.Range(.Cells(4, j), .Cells(7, j)).Select
.Paste
.Cells(3, j).Value = Worksheets("Feuil1").Cells(i, 1).Value
j = j + 2
End If
Next
End With
Application.ScreenUpdating = True
End Sub

bonjour et merci pour l'aide mais malheureusement cela ne fonctionne pas chez moi.

J''ai copier/coller le code dans la feuille 2 dans l’éditeur VBA.

Ensuite j'ai activer la macro dans fichier option , barre d'outil accès rapide, macro, feuille2 merge cell , et je lui met une icone.

Quand j'appuie sur le bouton de ma macro il y a un message d'avertissement me disant que :

"la fusion des cellules permet de conserver uniquement la valeur supérieur gauche. Les autres valeurs seront ignorés".

quand je fait ok j'ai une "erreur 400" qui apparaît et je n'ai pas le résultat escompté du coup.

Merci de votre aide.

Re,

chez moi ca fonctionne

J'ai modifié un peu la macro.....

Bonne nuit

Bonjour à tous

Outre le fait que fusionner des colonnes ne fait que tirer le 1er fil de la pelote à emm...ments, dans l'exemple fourni B n'existe pas sur la feuille 2...

Quel est l'intérêt de fusionner des lignes alors qu'il suffit de jouer sur la hauteur d'une seule ?

Quel est l'intérêt de fusionner les colonnes E et F plutôt qu’utiliser une colonne plus large ?

bonjour, et encore merci pour votre aide.

je pense qu'un peut plus d'explication sur le pourquoi un tel fichier vous aideras mieux.

Considérer les produits A,B,C comme des noms de pièces.

Le nombre 1 auquel il y est associé veut dire que la pièce tient dans un bac simple.

Le nombre 2 auquel il y est associé veut dire que la pièce tient dans un bac double.

J'ai un plateau qui peut contenir jusqu’à 8 emplacements maximum.

Sur ce plateau je peut faire des combinaison de bac différents avec des noms de pièces différentes, exemple:

4 bac double avec les pièces B,C,E,G

4 bac double avec les pièces B,B,B,E

2 bac double et 4 de bac simple avec les pièces B,G,A,D,F,H.

8 bac simple avec les pièces A,A,A,A,A,A,A,A

etc, etc

Actuellement, j'utilise un fichier où les colonnes contenant les bac double on était fusionner, et je vous avoue que cela m'aide pas mal visuellement à voir mes combinaisons . Donc si je peut garder cette méthode ce serais pas mal.

L’inconvénient de mon fichier actuel est que je dois faire des copier/coller pour avoir des "colonnes simple" ou "double" et après a chaque fois ré-écrire le nom de la pièces associé au nouveau bac.

C'est pourquoi j'ai eu l'idée de faire une liste avec tous mes noms de pièces, cela m’éviteras déjà d'avoir à l’écrire à chaque fois car je n'ai plus qu'a choisir dans la liste, et de leur associée le type de bac 1 pour bac simple 2 pour bac double,

Ce que j'aimerais c'est qu'automatiquement quand je choisis une pièce dans la liste c'est que son nom apparaisse dans le tableau et que visuellement je vois si elle tiens dans un bac simple ou dans un bac double.

Apres si fusionner/ défusionner (francais ça? lol) une cellule suivant le nombre attribuer (1 ou 2) c'est trop compliqué alors qu’agrandir/diminuer la cellule c'est plus simple je suis preneur aussi.

j’espère que j'ai était beaucoup plus clair.

Encore merci pour votre aides.

Je comprend pas, mais je t‘ai mis le fichier avec la macro, ca devrait suffir non?

Bonjour,

Merci pour la macro elle fonctionne chez moi

Par contre je vais essayer de m'exprimer plus simplement pour avoir l'aide que je désire.

Quand tu clique sur la deuxième feuille , à l'endroit de la lettre (que ce soit A,B,C,D) tu as un menu déroulent qui apparaît.

Je souhaiterais si possible, que quand je choisis une lettre dans le menu déroulant, le tableau ce configure automatiquement suivant ça lettre.

Exemple sur la feuille 2 après avoir appuyer sur le bouton "merge cellule", j'ai le tableau du haut qui à la combinaison A,B,C,D, si jamais je change la combinaison , avec le menu déroulant, en E,F,G,H , j'aimerais que mon tableau change automatiquement.Qu'il devienne comme celui du bas.

Est-ce que c'est possible?

Mille merci pour ton aide

bonjour à tous

comme Chris je déconseille les fusions de celllules

mais ici, il semble qu'il faille dessiner une configuration d'un truc réel (et non gérer des données comme on fait habituellement)

alors je suis pour la fusion

mais :

  • soit on fait ceci qq fois/jour, et la souris suffit
  • soit on fait ceci 100 fois/jour et il vaut mieux un progiciel dédié

amitiés

Malheureusement pour moi je dois le faire très régulièrement, plusieurs fois par semaine.

D'où mon idée.

Mais apparemment cela n'ai pas top.

Avez-vous un prologiciel, gratuit de préférence, à me proposer?

merci

Exemple sur la feuille 2 après avoir appuyer sur le bouton "merge cellule", j'ai le tableau du haut qui à la combinaison A,B,C,D, si jamais je change la combinaison , avec le menu déroulant, en E,F,G,H , j'aimerais que mon tableau change automatiquement.Qu'il devienne comme celui du bas.

Est-ce que c'est possible?

Mille merci pour ton aide

je sais pas si j'ai bien compris mais tu peux faire un test comme suivant:

insére ce code dans la feuille "Feuil2"

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("B9:H9")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Cells(Target.Row - 6, Target.Column) = Target
    Application.EnableEvents = True
End Sub

Bonjour et merci pour votre aide.

j'ai remonté mes manches et mis les mains dans le cambouis.

Grace à vos codes et vos différentes réponses sur le forum,j'ai pu vous faire un fichier pour vous mieux expliquer ce que j'aimerai.

Mais j'ai encore des difficultés à coder certaines partis trop complexes.

Je tien aussi à préciser que le code ne fonctionne que pour le couple "B3:C3".

J'aimerais qu'il fonctionne pour tous les couples, sur tous les tableaux.

exemple tableau 1: "B3:C3" "D3:E3" "F3:G3" "H3:I3"

Malheureusement je n'ai pas les clefs pour réussir à le faire seul.

je sais que cela viens de la détection de sélection.

A la place de :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B3")) Is Nothing Then

Application.Run "Macro" & Target.Offset(1, 0).Value

End If

End Sub

j'ai bien tenté de faire:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("D3")) Is Nothing Then

Application.Run "Macro" & Target.Offset(1, 0).Value+1

End If

End Sub

et d'ecrire la macro3 et la macro4 mais cela ne marche pas.

J'ai aussi essayer de faire:

Dim i as integer

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B3")) Is Nothing Then

i= Target.Offset(1, 0).Value+1

Application.Run "Macro" & i

End If

End Sub

Sans réussite.

J'aimerais donc votre aide.

J'aimerais aussi que les messages automatique de "fusion" soit validé par le VBA , est ce que c'est possible?

En attendant votre réponse je cherche encore de mon cotés, car je trouve qu'apprendre le codage c'est très intéressant .

Mille merci pour votre aide.

ps: le bouton reset ne fonctionne pas , ne pâs cliquer dessus

1pour-forum.xlsm (32.28 Ko)

Bonjour,

personne pour m'aider?

Bonjour à tous,

J'avance tout doucement, à vrai dire je pourrais même finaliser mon code mais cela ce ferais sur 10 pages .

Donc je suis entrain d'essaie de l'amélioré.

Là ou je bute c'est sur le nombre de fois où ma macro 2 dois ce lancer.

J'aimerais qu'elle ce lance qu'a chaque première sélection si "B5" égale 2.

Sinon ça me fou le bordel.

Regardé placer vous sur la case "B3" (premier ruban) choisissez "double" cela lance comme je veut la macro2.

Choisissez à nouveau "double" cela me re-lance ma macro, et me fou le bordel.

pouvez-vous m'aider?

merci

0pour-forum.xlsm (30.69 Ko)
Rechercher des sujets similaires à "fusion colonne suivant nombre"