[]
excel acil
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.
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.
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 (23.01.19 15:54:35 ~ 16:03:24)
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.
=birleştir(A1;A2;A3)
fx’i kullanarak daha da rahat yapabilirsin.
- hatcherman (23.01.19 15:57:45)
1