• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

bir textboxda hem rakam hem metin olursa

Katılım
2 Nisan 2011
Mesajlar
162
Excel Vers. ve Dili
office 2007 tr
merhaba aşağıdaki kod ile (10001 sayısını eğer aynısı varsa +1 artırıp yeni aldığı 10002 sayının sayfasını oluşturuyorum) ancak bu sayının içinde AF10001 de olacak yani AF de olması gerekiyor hal böyle olunca ne artırıyor ne yeni sayfa açıyor hata veriyor bu koda ne yapmamız gerekiyor?

mevcutNo = CLng(Me.TextBox1048.Value)
yeniNo = mevcutNo

Do
mevcutMu = False
For Each ws In ThisWorkbook.Sheets
If ws.Name = CStr(yeniNo) Then
mevcutMu = True
Exit For
End If
Next ws
If mevcutMu Then yeniNo = yeniNo + 1
Loop While mevcutMu

Me.TextBox1048.Value = yeniNo

Sayfa15.Copy After:=Sheets(Worksheets.Count)
ActiveSheet.Name = TextBox1048.Value
MsgBox "İşlem Tamamlandı...", vbInformation
 
Eğer rakamlar hep 6 haneli ise; bu kod işinizi görebilir.

Kod:
If mevcutMu Then yeniNo = Right(yeniNo,6) + 1
 
böyle yapıyorum ilk sayfayı oluşturuyor ama 2. de ActiveSheet.Name = TextBox1041.Value + TextBox1048.Value burda hata veriyor TextBox1041.Value yazan textboxa AF çektiriyorum initialize ile


mevcutNo = CLng(Me.TextBox1048.Value)
yeniNo = mevcutNo

' Numara mevcutsa +1 artırarak benzersiz hale getir
Do
mevcutMu = False
For Each ws In ThisWorkbook.Sheets
If ws.Name = CStr(yeniNo) Then
mevcutMu = True
Exit For
End If

Next ws

If mevcutMu Then yeniNo = Right(yeniNo, 6) + 1
Loop While mevcutMu

' Benzersiz numarayı TextBox'a yaz
Me.TextBox1048.Value = yeniNo

Sayfa15.Copy After:=Sheets(Worksheets.Count)
ActiveSheet.Name = TextBox1041.Value + TextBox1048.Value
MsgBox "İşlem Tamamlandı...", vbInformation
 
Clng yi yeniNo da deneyin birde.
Kod:
If mevcutMu Then yeniNo = Clng(Right(yeniNo, 6)) + 1
 
Yalnız sayı 5 haneli, verilen koddaki 6 yerine 5 yazıp dener misiniz?
 
Seri sabit ise bir de şunu dener misiniz?

Kod:
If mevcutMu Then yeniNo = Val(WorksheetFunction.Substitute(yeniNo, "AF", "")) +1
 
Merhaba.

Aşağıdaki satırı silin
Kod:
If mevcutMu Then yeniNo = yeniNo + 1

yerine aşağıdakini kopyalayın.
Kod:
If mevcutMu Then yeniNo =Rakam( yeniNo) + 1

Aşağıdaki kodu herhangi bir yere kopyalayın.
Kod:
Function Rakam(Metin As String) As Long
    Dim Bak As Integer
    For Bak = 1 To Len(Metin)
        If IsNumeric(Mid(Metin, Bak, 1)) Then
            Rakam = Rakam & Mid(Metin, Bak, 1)
        End If
    Next
End Function
 
Merhaba.

Aşağıdaki satırı silin
Kod:
If mevcutMu Then yeniNo = yeniNo + 1

yerine aşağıdakini kopyalayın.
Kod:
If mevcutMu Then yeniNo =Rakam( yeniNo) + 1

Aşağıdaki kodu herhangi bir yere kopyalayın.
Kod:
Function Rakam(Metin As String) As Long
    Dim Bak As Integer
    For Bak = 1 To Len(Metin)
        If IsNumeric(Mid(Metin, Bak, 1)) Then
            Rakam = Rakam & Mid(Metin, Bak, 1)
        End If
    Next
End Function

böyle bir hata verdi muzaffer bey
 

Ekli dosyalar

  • Adsız33.png
    Adsız33.png
    40.5 KB · Görüntüleme: 4
açacağı sayfa kodu bu eğer anlatımımda eksiklik varsa resimli olarakda görün istedim AF10001 bunu açıcak sayfa olarak ve eğer varsa AF10002 yi açıcak istediğim bu AF hiç değişmiyor sabit
 

Ekli dosyalar

  • Adsız42.png
    Adsız42.png
    60.1 KB · Görüntüleme: 3
aynı hocam aynı hatayı veriyor

Hata veren satırda textbox içeriğini Longa çevirmeye çalışıyorsunuz. Hatayı da o satırda vermiş zaten. Bence problem sayfa numarası oluşturmaktan ziyade algoritmanızda. Satır satır akışı tekrar kontrol etmenizi tavsiye ederim.
 
Hata veren satırda textbox içeriğini Longa çevirmeye çalışıyorsunuz. Hatayı da o satırda vermiş zaten. Bence problem sayfa numarası oluşturmaktan ziyade algoritmanızda. Satır satır akışı tekrar kontrol etmenizi tavsiye ederim.

tamam ondan vazgeçtim şöyle deniyorum mesela 2 textbox oluşturdum resimde gördüğünüz gibi AF yi birine sadece rakam olanı birine yazdım kaydedince AF100001 i oluşturuyor sayfa olarak ama AF100002 yi oluşturamıyor burada bir değişken gerekiyor sanırım üstteki kod +1 sayacı oluşturuyor ama AF yi döndüremiyor sanırım
 
böyle bir hata verdi muzaffer bey
If mevcutMu Then yeniNo =Rakam( yeniNo) + 1
"AF100001" hangi değişkene atadıysanız onu parantez içindeki yeniNo yerine yazacaksınız.
Örneğin TextBox2'de "AF100001" yazıyorsa aşağıdaki gibi olmalı.
If mevcutMu Then yeniNo =Rakam( TextBox2) + 1
yada şöyle de olur
If mevcutMu Then yeniNo =Rakam("AF100001") + 1
 
If mevcutMu Then yeniNo =Rakam( yeniNo) + 1
"AF100001" hangi değişkene atadıysanız onu parantez içindeki yeniNo yerine yazacaksınız.
Örneğin TextBox2'de "AF100001" yazıyorsa aşağıdaki gibi olmalı.
If mevcutMu Then yeniNo =Rakam( TextBox2) + 1
yada şöyle de olur
If mevcutMu Then yeniNo =Rakam("AF100001") + 1

muzaffer bey yine aynı hatayı veriyor textbox1048 e AF100001 i userform initialize ile çekiyorum sayfadan ondanmı oluyor acaba

textbox1041 olayayla kafanız karışmasın o benim kendi farklı bir yöntemimdi oda işe yarıyor ama 1 kez açıyor sayfayı olay +1 e dayanınca hata veriyor. 2. yi açmıyor yani.
textbox1041 e AF yazıyorum textbox1048 e de 100001 yazıyorum sayfayı 1 defaya mahsus AF100001 olarak oluşturuyor ama saydırma yapmıyor yani sayfa mevcutsa AF100002 olarak aç olayını yapmıyor.
 

Ekli dosyalar

  • Adsız44.png
    Adsız44.png
    27.7 KB · Görüntüleme: 2
bu şekilde yapınca AF10001 olarak açıyor ilk sayfayı sonra tekrar kaydedince resimdeki hatayı veriyor

255798
 
Dosyanızı paylaşın yapalım. Başka hatalarda var.
 
hocam yapay zeka sorunumu giderdi artık yapay zekaya yola devam herşey için teşekkürler herkese iyi çalışmalar dilerim
 
Geri
Üst