Belirli hücre aralığını seçerken bir üst satırında otomatik seçilmesi

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

Aşağıdaki kod düzeneğinde seçilecek alanla alakalı bir işlem yaptırıyorum. Yalnız bu seçimi ben B2 hücresinden başlatıp I5 e kadar yapıyorum diyelim. yani B2:I5 aralığını seçmiş bulunuyorum ve makromu işletiyorum. ama şunu istiyorum. Ben B2:I5 i seçmiş olsam bile yani seçimi B2 den başlatmış olsam bile bunu ufak bir ekleme ile B1 den başlatabilir miyim.

Bunu şu yüzden istiyorum. Aslında hani B1 den başla seçime o zaman diyebilirsiniz ama bunu kullanacak olanlar B1 den başlamayabilir gider B2 den başlar diye otomatik olarak B1 hücresinden seçimi başlatsın istiyorum.

Ben B2:I5 seçsemde A2:I5 seçsemde
B2:C10 seçsemde Seçime B1 den başlasın.

yardımınızı rica ederim

Kod:
Dim myRange As String     
myRange = Selection.Address
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şöyle dener misiniz?

Kod:
Dim myRange As String
myRange = Selection.Address
bitiş = Right(myRange, Len(myRange) - WorksheetFunction.Find(":", myRange))
Range("B1:" & bitiş).Select
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Üstadım selam öncelikle ilginiz için teşekkür ederim

kodun tamamı aşağıdaki gibi. sizin ekstradan ilettiğiniz kodu aşağıdaki yerde yazdım ama değişen bir şey olmadı. bu kod bir butona atanmış bir şekilde.

Ben seçtiğim alanı butona bastıktan sonra bir print önizlemesi olarak görüyorum. acaba öncesinde ayrı bir macro script ile mi yapmak lazım. yani ayrı bir seçim alanı makrosu hazırlamak

Kod:
Sub Print_Format()
Dim myRange As String
    
myRange = Selection.Address
ActiveSheet.PageSetup.PrintArea = myRange
bitiş = Right(myRange, Len(myRange) - WorksheetFunction.Find(":", myRange))
Range("B1:" & bitiş).Select
With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.2)
    .PaperSize = xlPaperLetter
    .Orientation = xlPortrait 'xlLandscape
    .Zoom = False
    .CenterHorizontally = True
    '.FitToPagesWide = 1
    '.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True
'Worksheets("Sheet22").PageSetup.CenterHorizontally = True 'Print Preview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1 'Printout
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodda önce yazdırma alanı belirlemiş sonra da B1'den itibaren seçim yapmışsınız.

Kod:
ActiveSheet.PageSetup.PrintArea = myRange
satırını

Kod:
Range("B1:" & bitiş).Select
satırından sonra yazmalısınız.
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
haklısınız bahsettiğinzi şekilde revize ettim. Butona bastıktan sonra evet ben b2 den seçime başlamışsam b1 i seçili hale getiriyor. fakat yazdırma önizlemesinde yine o b1 ile seçilmiş alan çıkmıyor kendim manuel seçtiğim alan print önizlemesi olarak geliyor ve yazdırıyor.

Kod:
Sub Print_Format()
Dim myRange As String
    
myRange = Selection.Address
bitiş = Right(myRange, Len(myRange) - WorksheetFunction.Find(":", myRange))
Range("B1:" & bitiş).Select
ActiveSheet.PageSetup.PrintArea = myRange
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki gibi deneyin:

Kod:
Sub Print_Format()
Dim myRange As String
    
myRange = Selection.Address
bitiş = Right(myRange, Len(myRange) - WorksheetFunction.Find(":", myRange))
Range("B1:" & bitiş).Select
ActiveSheet.PageSetup.PrintArea = "$B$1:" & bitiş
With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.2)
    .PaperSize = xlPaperLetter
    .Orientation = xlPortrait 'xlLandscape
    .Zoom = False
    .CenterHorizontally = True
    '.FitToPagesWide = 1
    '.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True
'Worksheets("Sheet22").PageSetup.CenterHorizontally = True 'Print Preview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1 'Printout
End Sub
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Üstadım harikasınız evet şimdi oldu. affınıza mahcuben ufak bir soru soracağım ama sadece aklıma geldiğinden soruyorum hani bu seçimi ben şu şekilde yapmak istesem.

B2:C5 Seçtim mesela şimdi bu en son makroyla birlikte B1:C5 seçili hale getiriyor çok güzel.
ama B2:C5 i seçince B1:I5 aralığını seçmesini istesem nasıl bir revize gerekir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki gibi dener misiniz?
Kod:
Sub Print_Format()
Dim myRange As String
a = Selection.Rows.Count
c = ActiveCell.Row

Range("B1:I" & a + c - 1).Select
ActiveSheet.PageSetup.PrintArea = "$B$1:$I" & a + c - 1
With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.2)
    .PaperSize = xlPaperLetter
    .Orientation = xlPortrait 'xlLandscape
    .Zoom = False
    .CenterHorizontally = True
    '.FitToPagesWide = 1
    '.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True
'Worksheets("Sheet22").PageSetup.CenterHorizontally = True 'Print Preview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1 'Printout
End Sub
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Üstadım emeğine bilgine sağlık çok teşekkür ederim
 
Üst