• DİKKAT

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

Eğer formülünü makro ile yazma

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba herkese hayırlı akşamlar.

Ekte gönderdiğim excel dosyamın B7 hücresinde saat yerine kullanılan metin olan sayılar var, benim istediğim B7 hücresindeki sayılardan soldan 2 rakam 18'den küçükse N1 hücresine DOĞRU yazsın, N2 hücresini silsin.

Aynı işlem olarak B7 hücresindeki sayılardan soldan 2 rakam 18'den büyükse N2 hücresine DOĞRU yazsın, N1 hücresini de silsin.

Bu işlemi buton ile yapmak istiyorum. Bir türlü formülü ve makroyu kurgulayamadım,

Yardımcı olur musunuz?
.
 

Ekli dosyalar

Bu işlem , sadece "B7" hücresindeki değer için mi uygulanacak?
Cevabınız "EVET" ise aşağıdaki kodu deneyin.
Kod:
Sub DoğruYaz()
If Left(Sheets("Sayfa1").Range("B7"), 2) <= 18 Then
Sheets("Sayfa1").Range("N1") = "DOÐRU"
Sheets("Sayfa1").Range("N2").ClearContents
Sheets("Sayfa1").Range("B7").ClearContents
Else
Sheets("Sayfa1").Range("N2") = "DOÐRU"
Sheets("Sayfa1").Range("N1").ClearContents
Sheets("Sayfa1").Range("B7").ClearContents
End If
End Sub

Cevabınız "HAYIR" ise lütfen açıklama yapınız.
 
Son düzenleme:
Sayın turist, ilginiz için çok teşekkür ediyorum, ellerinize sağlık tam istediğim gibi olmuş.

Hayırlı geceler diliyorum.
 
Kod:
Sub yaz()
If Left(Sheets("Sayfa1").Range("B7"), 2) <= 18 Then
Sheets("Sayfa1").Range("B7,N1:N2").ClearContents
Sheets("Sayfa1").Range("N1") = "DOĞRU"
Else
Sheets("Sayfa1").Range("B7,N1:N2").ClearContents
Sheets("Sayfa1").Range("N2") = "DOĞRU"
End If
End Sub
veya
Kod:
Sub yaz()
Sheets("Sayfa1").Range("N1:N2").ClearContents
If Left(Sheets("Sayfa1").Range("B7"), 2) <= 18 Then
Sheets("Sayfa1").Range("N1") = "DOĞRU"
Else
Sheets("Sayfa1").Range("N2") = "DOĞRU"
End If
Sheets("Sayfa1").Range("B7").ClearContents
End Sub
şeklinde de kullanabilirsiniz.
 
Sayın turist, hayırlı geceler.

İlk mesajınızda sorumun cevabını vererek sorunumu çözdünüz, çok teşekkür ediyorum, diğer sonuçları sonradan gördüm.
Biraz geç dönüş yapıyorum kusura bakmayın. Ancak bilgisayar başına geçebildim.
 
Son düzenleme:
Sayın turist, hayırlı sabahlar tekrar rahatsız ediyorum.

Yazmış olduğunuz kod gayet güzel çalışıyor, sizin kodu sayfa içerisindeki diğer kodların arasına eklemeye çalıştım ancak olmadı.
Kullanmış olduğum kodu göndermiş olduğum excel dosyasına ekledim.

18'den küçük ve büyük işlemi işimi çözer diye düşünmüştüm, ancak tam olarak işimi çözmedi.

Yapmak istediğim eğer C7 hücresindeki saat, Q3'teki 18.00'den küçük ise AA3 hücresine DOĞRU yazsın, AA4 hücresini silsin,
eğer C7 hücresindeki saat, Q3'teki saat olan 18.00'den büyük ise AA4 hücresine DOĞRU yazsın AA3 hücresini silsin istiyorum.

Kodun yapmasını istediğim şey bilgileri geri yapıştırdığım da gündüz ve gece görevlisini ayırmasını istediğim için bu şekilde istemiştim.

Buradaki saatin arasına nokta koymamın sebebi ise yapmak istediğim çalışma sayfam ortak kullanılıyor,
ayrıca saati kimse de doğru düzgün yazmadığı için düzensizlik çıkıyor.

Yardımcı olabilir misiniz?
.
 

Ekli dosyalar

Kopyala yapıştır ile hangi alandan bilgi alıp B7ye yapıştırıyorsunuz ve neden?
 
Dosyada yan sayfalar var, bu sayfalarda da arşiv bulunmakta, kullanmış olduğum bu sayfa ana sayfa,
arşiv sayfalardan belirli aralığı seçip butona bastığımda bu bölüme tekrar yapıştırıyor.
 
Son düzenleme:
Sadece C7 deki saate göre DOĞRU/YANLIŞ yazmasını istiyorsunuz, fakat C8, c9...gibi alt hücrelerde de saatler var bunun bir anlamı var mı, yok mu?
AA3 ve AA4 e yazılan DOĞRU, bir başka alanda veri olarak mı kullanılıyor?
Aslında kodlar, düz mantıkla doğru çalışıyor.Ancak; tam olarak ne işe yaradığı bilinmeden;bu şekilde , asıl yapmak istediğinizi anlamadan , sadece KOD düzenlemekle belki işi çözmek zor olabilir.

Konuyu ve dosyanın işlevini ancak siz biliyorsunuz ve KOD yazmak tek başına yardımcı olmayabilir.
Elimizden geldiği kadar, sizin bildiğiniz konuyu anlamaya ve çözmeye çalışsak da; dosya yapısı, işlevi ve esas amaç bilinmeden; bundan ileri bir şey söylemek zor gibi.
Daha detay verirseniz ve dosyanızın örneğini eklerseniz çözüm TAM olur.
Takdir sizin.
 
Sayın turist, sadece C7 hücresindeki saat gibi görünen saat Q3 hücresindeki saat gibi görünen saatten büyükse veya küçükse AA3 veya AA4 hücresine DOĞRU yazması yeterli.

Dosya büyük olduğu için sadeleştirmem zaman alacak.
 
Kod:
Sub KopyalaYapıştır()
    
    Dim ilk_sat As Long
    Dim ilk_süt As Long, son_süt As Long
    Dim SA As Worksheet: Set SA = Sheets(1)
    
    With Selection
    
    ilk_sat = .Row
    ilk_süt = .Column
    son_süt = .Columns.Count + ilk_süt - 1
    End With
    
    If ilk_sat < 2 Then Exit Sub
    If ilk_süt >= 2 And son_süt <= 11 Then
'        SA.Range("B7:K56").ClearContents
        Selection.Copy SA.Range("B7")
        
    Sheets(1).Select
    Sheets(1).Range("O3") = Sheets(1).Range("B7")
    
    Sheets("Sayfa1").Range("AA3:AA4").ClearContents
    If Left(Sheets("Sayfa1").Range("C7"), 2) <= 18 Then
    Sheets("Sayfa1").Range("AA3") = "DOĞRU"
Else
    Sheets("Sayfa1").Range("AA4") = "DOĞRU"
End If
    Sheets("Sayfa1").Range("C7").ClearContents
    Range("B7").Select
    
    Else
    MsgBox "Hücre aralığı seçmediniz.", vbInformation, "ASLAN"
    End If
    
End Sub

şeklinde deneyin.
 
Sayın turist son gönderdiğiniz kod işimi çözdü, çok teşekkür ediyorum, hayırlı sabahlar diliyorum.
 
Geri
Üst