seçili 3 veya 2 hücreyi (kaç tane seçildiyse, hepsi alt alta olmak koşuluyla) tek bir tuşa basarak birleştirme yapmak mümkün mü? yani

ahmet
mehmet
hüseyin

bu 3 hücreyi seçip bir şeye basıp en üstteki hüceyi "ahmet mehmet hüseyin" yapacak.

 

Option Explicit

Sub Concatenate_Options()

Call Concatenate_Formula(True, True)
End Sub

Sub Concatenate_Formula(bConcat As Boolean, bOptions As Boolean)

Dim rSelected As Range
Dim c As Range
Dim sArgs As String
Dim bCol As Boolean
Dim bRow As Boolean
Dim sArgSep As String
Dim sSeparator As String
Dim rOutput As Range
Dim vbAnswer As VbMsgBoxResult
Dim lTrim As Long
Dim sTitle As String


Set rOutput = ActiveCell
bCol = False
bRow = False
sSeparator = ""
sTitle = IIf(bConcat, "CONCATENATE", "Ampersand")


On Error Resume Next
Set rSelected = Application.InputBox(Prompt:= _
"Birlestirelecek hucreleri secin", _
Title:=sTitle & " Creator", Type:=8)
On Error GoTo 0


If Not rSelected Is Nothing Then


sArgSep = IIf(bConcat, ",", "&")

If bOptions Then



sSeparator = Application.InputBox(Prompt:= _
"Bir ayirac secin (bu alan bos da birakilabilir)", _
Title:=sTitle & " separator", Type:=2)

End If


For Each c In rSelected.Cells
sArgs = sArgs & c.Address(bRow, bCol) & sArgSep
If sSeparator <> "" Then
sArgs = sArgs & Chr(34) & sSeparator & Chr(34) & sArgSep
End If
Next


lTrim = IIf(sSeparator <> "", 4 + Len(sSeparator), 1)
sArgs = Left(sArgs, Len(sArgs) - lTrim)

If bConcat Then
rOutput.Formula = "=CONCATENATE(" & sArgs & ")"
Else
rOutput.Formula = "=" & sArgs
End If

End If



End Sub

bu makroyu personal.xlsb icine yerlestirip bos bir excel dosyasinda ribona bir simge koyup o butonu yapabilirsiniz.

lifeframe

Tek tuşla oluyor mu bilmiyorum ama sorunu yanlış anlamadıysam birleştir formülüyle kolayca yapabilirsin.

=birleştir(A1;A2;A3)

fx’i kullanarak daha da rahat yapabilirsin.

hatcherman
1

mobil görünümden çık