Fusion lignes excel
Résolu
youchlure
Messages postés
84
Date d'inscription
Statut
Membre
Dernière intervention
-
youchlure -
youchlure -
Bonjour,
j'ai vu sur un précedent poste qu'il était possible de fusionner des lignes
Voici mon tableau :
A 25
A 75
B 55
B 25
B 20
Et je voudrais tout sur la meme ligne...Serais ce possible?
Merci beaucoup
PS: je peux eventuellement poster mon tableau
j'ai vu sur un précedent poste qu'il était possible de fusionner des lignes
Voici mon tableau :
A 25
A 75
B 55
B 25
B 20
Et je voudrais tout sur la meme ligne...Serais ce possible?
Merci beaucoup
PS: je peux eventuellement poster mon tableau
A voir également:
- Fusion lignes excel
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
25 réponses
Fusionner les lignes n'aditionne pas leurs contenu, du moins à ma connaissance.
youchlure
tout à fait je suis d'accord la dessus, mais c'est juste que je me posais la question, je pense que mes précedents analyses ne devaient pas avoir de site ou un code occsol revenait plusieurs fois, voila la différence à mon avis
OK, compris ta demande, laisse moi un peu de temps, pour le moment je suis pas trop disponnible, si un autre intervenant veux t'aider.. sinon ce sera pour demain ou après demein.
A+
A+
Bonsoir
En attendant mieux, une solution mi-macro :
les données en feuil1
feuil2, en B2 on entre : =SOMME.SI(Feuil1!$A$2:$A$2279;$A2;Feuil1!B$2:B$2279)*(Feuil1!B$1=Feuil2!B$1)
on étire jusqu'a AB2
en AC2, on entre bien sur : =SOMME(B2:AB2)
On sélectionne de B2 à AC2 et on étire vers le bas d'un nombre de lignes égal ou supérieur au nombre de valeurs différentes en colonne A de feuil1.
On colle la macro suivante en feuil2 :
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 12/03/2009 par
'
'
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("feuil2").Activate
Col = "a"
NumLig = 1
Lig = 1
With Sheets("feuil1")
.Cells(Lig, Col).EntireRow.Copy
ActiveSheet.Paste Destination:=Worksheets("feuil2").Range("A1")
NumLig = 2
Lig = 2
.Cells(Lig, Col).Copy
Sheets("feuil2").Paste Destination:=Cells(NumLig, Col)
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 3 To NbrLig
If .Cells(Lig, Col).Value <> .Cells(Lig - 1, Col).Value Then
.Cells(Lig, Col).Copy
NumLig = NumLig + 1
Sheets("feuil2").Paste Destination:=Cells(NumLig, Col)
End If
Next
End With
End Sub
et on éxécute Macro2
Bien sur, si le nombre de valeurs en ligne 1 est supérieur à l'exemple, il faudra modifier, mais on peut prévoir +large dés le début.
En attendant mieux, une solution mi-macro :
les données en feuil1
feuil2, en B2 on entre : =SOMME.SI(Feuil1!$A$2:$A$2279;$A2;Feuil1!B$2:B$2279)*(Feuil1!B$1=Feuil2!B$1)
on étire jusqu'a AB2
en AC2, on entre bien sur : =SOMME(B2:AB2)
On sélectionne de B2 à AC2 et on étire vers le bas d'un nombre de lignes égal ou supérieur au nombre de valeurs différentes en colonne A de feuil1.
On colle la macro suivante en feuil2 :
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 12/03/2009 par
'
'
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("feuil2").Activate
Col = "a"
NumLig = 1
Lig = 1
With Sheets("feuil1")
.Cells(Lig, Col).EntireRow.Copy
ActiveSheet.Paste Destination:=Worksheets("feuil2").Range("A1")
NumLig = 2
Lig = 2
.Cells(Lig, Col).Copy
Sheets("feuil2").Paste Destination:=Cells(NumLig, Col)
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 3 To NbrLig
If .Cells(Lig, Col).Value <> .Cells(Lig - 1, Col).Value Then
.Cells(Lig, Col).Copy
NumLig = NumLig + 1
Sheets("feuil2").Paste Destination:=Cells(NumLig, Col)
End If
Next
End With
End Sub
et on éxécute Macro2
Bien sur, si le nombre de valeurs en ligne 1 est supérieur à l'exemple, il faudra modifier, mais on peut prévoir +large dés le début.
bonjour,
merci pour votre aide, je vais essayer cette solution en attendant la macro définitive
MErci encore et bonne journée
merci pour votre aide, je vais essayer cette solution en attendant la macro définitive
MErci encore et bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sub Fusion()
Dim lig As Long, Col As Integer
Application.ScreenUpdating = False
lig = 2
With Sheets("Feuil1")
While .Cells(lig, 1) <> ""
While .Cells(lig, 1) = .Cells(lig + 1, 1)
For Col = 2 To 28
If .Cells(lig + 1, Col) <> "" Then
.Cells(lig, Col) = .Cells(lig, Col) + .Cells(lig + 1, Col)
Debug.Print .Cells(lig, Col)
End If
Next Col
.Rows(lig + 1).Delete
Wend
lig = lig + 1
Wend
End With
Application.ScreenUpdating = True
End Sub
Pour appliquer tu fais la même chose que la 1ère fois.
Met les largeurs colonnes à 4,3
Tu dis..
Dim lig As Long, Col As Integer
Application.ScreenUpdating = False
lig = 2
With Sheets("Feuil1")
While .Cells(lig, 1) <> ""
While .Cells(lig, 1) = .Cells(lig + 1, 1)
For Col = 2 To 28
If .Cells(lig + 1, Col) <> "" Then
.Cells(lig, Col) = .Cells(lig, Col) + .Cells(lig + 1, Col)
Debug.Print .Cells(lig, Col)
End If
Next Col
.Rows(lig + 1).Delete
Wend
lig = lig + 1
Wend
End With
Application.ScreenUpdating = True
End Sub
Pour appliquer tu fais la même chose que la 1ère fois.
Met les largeurs colonnes à 4,3
Tu dis..