sitki1
Altın Üye
- Katılım
- 11 Nisan 2015
- Mesajlar
- 7
- Excel Vers. ve Dili
- 2007
- Altın Üyelik Bitiş Tarihi
- 09-01-2028
Merhaba,
VBA ile KOMSULUK sayfasında ki A ve B alanlarındaki 2 veriyi, uzunluk, bağlı olduğu farklı değerler, son değerleri gibi parametreler ile analiz edip farklı bir sayfaya çıktı oluşturmak istiyorum.
Eğer, iç içe eğer gibi farklı denemeler sonucu For-Case yapısı ile bir noktaya kadar geldim ancak 139-150 satırları arasında 1004 hatası alıyorum. Döngü içerisinde, sıradaki ilk hücre bilgisini çekerken
Yardımlarınızı rica ederim.
Hata aldığım 139-150 arası kod; bu alanda ki KOMList.Cells(i, 1)'leri KOMList.Cells(i, 2) yaptığımda alıyorum.
VBA ile KOMSULUK sayfasında ki A ve B alanlarındaki 2 veriyi, uzunluk, bağlı olduğu farklı değerler, son değerleri gibi parametreler ile analiz edip farklı bir sayfaya çıktı oluşturmak istiyorum.
Eğer, iç içe eğer gibi farklı denemeler sonucu For-Case yapısı ile bir noktaya kadar geldim ancak 139-150 satırları arasında 1004 hatası alıyorum. Döngü içerisinde, sıradaki ilk hücre bilgisini çekerken
KOMList.Cells(i, 1)
ile çekerken sorun yok ama 139-150 arasında KOMList.Cells(i, 2)
2. Hücreye göre işlem yapmam gerekiyor.KOMList.Cells(i, 1)
ve KOMList.Cells(i, 2)
değerlerini önceki caselerde de kullanıyorum ancak onlarda bir hata almazken 139. ve 150. satırlar arasındaki KOMList.Cells(i, 2)
yaptığımda hata almamı anlamlandıramadım. KOMList.Cells(i, 1)
yaptığımda sorun ortadan kalkıyor. Makrolarla yeni haşır neşir olmaya başladım, kodlarda gariplikler olabilir Yardımlarınızı rica ederim.
Kod:
Sub stkkom()
'Sheetleri tanımlama
Dim ws As Worksheet, KOMList As Worksheet, UData As Worksheet, GData As Worksheet, CMDSheet As Worksheet
Set KOMList = Worksheets("KOMSULUK")
Set UData = Worksheets("UMTS_CELL_DATA")
Set GData = Worksheets("GSM_CELL_DATA")
Set CMDSheet = Worksheets("CMD")
'Sheetleri tanımlama
'CMD Sheet temizleme
CMDSheet.Select
Range("A2", Selection.End(xlDown)).Delete 'CMD Sayfasını temizle.
KOMList.Select
'CMD Sheet temizleme
Dim celllist1 As Integer
Dim celllist2 As Integer
Dim cell1 As String
Dim cell2 As String
Dim rnc1 As String
Dim rnc2 As String
Dim status1 As Integer 'Case değişkenleri #1 3Gto3G
Dim status2 As Integer 'Case değişkenleri #2 Aynı RNC/BSC=True Farklı RNC/BSC=False
Dim status3 As Integer 'Case değişkenleri #3 Aynı Freq=True Farklı Freq=False
Dim status4 As Integer 'Case değişkenleri #4 2Gto2G
Dim status5 As Integer 'Case değişkenleri #5 3Gto2G
Dim status6 As Integer 'Case değişkenleri #6 2Gto3G
Dim resultbinary As String 'Cell state binary ile gösterim
celllist1 = WorksheetFunction.CountA(Range("A:A"))
celllist2 = WorksheetFunction.CountA(Range("B:B"))
'Cell listesinde boşluk kontrolü
If celllist1 <> celllist2 Then MsgBox "Tanımlanacak cell listelerinde hata var. Eşit sayıda olmayabilir." & vbCrLf & "Cell1 Hücre Sayısı: " & celllist1 & vbCrLf & "Cell2 Hücre Sayısı: " & celllist2, vbCritical
'Cell listesinde boşluk kontrolü
For i = 2 To celllist1
cell1 = KOMList.Cells(i, 1).Value
cell2 = KOMList.Cells(i, 2).Value
rnc1 = KOMList.Cells(i, 5).Value
rnc2 = KOMList.Cells(i, 6).Value
'#1 3Gto3G
If Len(cell1) = 7 And Len(cell2) = 7 Then
status1 = 1
Else: status1 = 0
End If
'#2 Aynı RNC/BSC=True Farklı RNC/BSC=False
If rnc1 = rnc2 Then
status2 = 1
Else: status2 = 0
End If
'#3 Aynı Freq=True Farklı Freq=False
If status1 = 1 And Right(KOMList.Cells(i, 1), 1) = Right(KOMList.Cells(i, 2), 1) Then
status3 = 1
Else: status3 = 0
End If
'#1 2Gto2G
If Len(cell1) = 6 And Len(cell2) = 6 Then
status4 = 1
Else: status4 = 0
End If
'#1 3Gto2G
If Len(cell1) = 7 And Len(cell2) = 6 Then
status5 = 1
Else: status5 = 0
End If
'#1 2Gto3G
If Len(cell1) = 6 And Len(cell2) = 7 Then
status6 = 1
Else: status6 = 0
End If
resultbinary = status1 & status2 & status3 & status4 & status5 & status6
'Debug Prints
Debug.Print cell1 & " " & cell2 & " " & "3Gto3G: " & status1
Debug.Print rnc1 & " " & rnc2 & " " & "Equal RNC: " & status2
Debug.Print rnc1 & " " & rnc2 & " " & "Equal FREQ: " & status3
Debug.Print cell1 & " " & cell2 & " " & "2Gto2G: " & status4
Debug.Print cell1 & " " & cell2 & " " & "3Gto2G: " & status5
Debug.Print cell1 & " " & cell2 & " " & "2Gto3G: " & status6
Debug.Print resultbinary
Debug.Print "****"
'Debug Prints
'CASE
Select Case resultbinary
'CMD_3Gto3G_Ayni_RNC_Ayni_Freq_111000
Case Is = "111000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTRAFREQNCELL:RNCID=" & WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
",NCELLRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
",NCELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
",SIB11IND=TRUE,SIB12IND=FALSE,TPENALTYHCSRESELECT=D0,NPRIOFLAG=FALSE;" & _
"{" & KOMList.Cells(i, 5) & "}"
CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTRAFREQNCELL:RNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
",NCELLRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
",NCELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
",SIB11IND=TRUE,SIB12IND=FALSE,TPENALTYHCSRESELECT=D0,NPRIOFLAG=FALSE;" & _
"{" & KOMList.Cells(i, 6) & "}"
'CMD_3Gto3G_Ayni_RNC_Farkli_Freq_110000
Case Is = "110000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTERFREQNCELL: RncId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
", CellId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & ", NCellRncId=" & _
Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & ", NCellId=" & _
Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
", SIB11Ind=TRUE, IdleQoffset2sn=0, SIB12Ind=FALSE, TpenaltyHcsReselect=D0, BlindHOFlag=FALSE, NPrioFlag=FALSE;" & _
"{" & KOMList.Cells(i, 5) & "}"
CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTERFREQNCELL: RncId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
", CellId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & ", NCellRncId=" & _
Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & ", NCellId=" & _
Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
", SIB11Ind=TRUE, IdleQoffset2sn=0, SIB12Ind=FALSE, TpenaltyHcsReselect=D0, BlindHOFlag=FALSE, NPrioFlag=FALSE;" & _
"{" & KOMList.Cells(i, 6) & "}"
'CMD_3Gto3G_Farkli_RNC_Ayni_Freq_101000
Case Is = "101000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
"_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
"{" & KOMList.Cells(i, 6) & "}"
CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
"_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
"{" & KOMList.Cells(i, 5) & "}"
Case Is = "100000": Call CMD_3Gto3G_Farkli_RNC_Farkli_Freq_100000
Case Is = "010100": Call CMD_2Gto2G_Ayni_BSC_010100
Case Is = "000100": Call CMD_2Gto2G_Farkli_BSC_000100
Case Else: MsgBox "HATA VAR!!!!"
End Select
'CASE
Next i
End Sub
Sub CMD_3Gto3G_Farkli_RNC_Farkli_Freq_100000()
MsgBox "3Gto3G Farklı RNC Farklı Freq"
End Sub
Sub CMD_2Gto2G_Ayni_BSC_010100()
MsgBox "2Gto2G Aynı BSC"
End Sub
Sub CMD_2Gto2G_Farkli_BSC_000100()
MsgBox "2Gto2G Farklı BSC"
End Sub
Kod:
CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
"_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
"{" & KOMList.Cells(i, 5) & "}"
Son düzenleme: