• DİKKAT

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

tam kelime bul değiştir

Katılım
5 Mart 2010
Mesajlar
227
Excel Vers. ve Dili
Ofis 2010 TR 32 Bit
D sütununda "gümüş" kelimesini bulup "demir" yazdırmak istiyorum. Kelimenin eki varsa veya çift kelime ise dokunmaması gerekiyor. Hücre içindeki Ön ek veya son ekleri görmemesi lazım.
Örneğin
"gümüş tepsi" kelimesine dokunmaması gerekiyor.
"gümüşlük" kelimesine dokunmaması gerekiyor. Sadece "gümüş" tek başına yazıyorsa "demir" olacak.
Valla iyice bunaldım. Makro ile çözümü var mıdır.
 
Makro kaydet yöntemiyle küçük bir makro oluşturdum. hücre içinde sadece "gümüş" olan hücreler değişti.
C++:
Sub Makro1()
'
' Makro1 Makro
'

'
    Columns("D:D").Select
    Selection.Replace What:="gümüş", Replacement:="demir", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
 
Dedim ya kafam durdu iyice. Makro kaydetmek yerine internette aratınca böyle oldu. Teşekkür ediyorum.
 
Makro kaydet yöntemiyle küçük bir makro oluşturdum. hücre içinde sadece "gümüş" olan hücreler değişti.
C++:
Sub Makro1()
'
' Makro1 Makro
'

'
    Columns("Q:Q").Select
    Selection.Replace What:="İŞLE", Replacement:="TAMAM", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Sy. NextLevel ;

1. Ben bunu kendime göre yapmaya çalışıyorum ama İŞLE yazısı düşeyara ile geldiği için makro değiştirmiyor.
2. bunu farklı sayfalar da tek makro ile uyguya bilir miyiz
sayfalar ;
HESAP FİŞİ sayfası Q sutunu
KOM sayfası P sutunu
Virman sayfası E sutunu ve H sutunu
iş sayfası L sutunu
Halk sayfası H sutunu
kontur sayfası G sutunu

İlginizden Dolayı teşekkür ederim. iyi günler Dilerim.
 
İŞLE ifadesi formülle geliyorsa bu değişikliği kaynağında yapmanız gerekir.
 
Bu ifade hangi durumda TAMAM olacaksa formülünüzü buna göre revize etmelisiniz.
 
Bu ifade hangi durumda TAMAM olacaksa formülünüzü buna göre revize etmelisiniz.

Sy. Koray Bey ;

Zirve Programına yükleme yapıldıktan sonra İŞLE yazan yerleri manuel olarak TAMAM yapıyorum bunu makro yöntemiyle yapmak istiyorum. ilginize teşekkür ederim.
 
İlgili programa veriyi yüklemek için gereken şartlar nedir?
 
İlgili programa veriyi yüklemek için gereken şartlar nedir?


Sy. Korhan Bey ;

İlgili (Zirve) Program yükleme şartı Sayfa1 de bulunan TARIH,CARIKODU,MIKTAR,TUTARTL,SIRANO,EVRAKNO,FATURACK,EVRAKTURU,BIRIM,STOKKODU,DOVIZC bu başlıklar olması
bende gerekli sayfalara verileri doldurur sonra İŞLE diyerek Sayfa1' e aktarırım Zirve Programına yükleme yapıldıktan sonra ise İŞLE ' leri TAMAM yaparak o verilerin zirve programına yüklediğimi bilirim ki hem mükerrer yükleme önlüyorum hem ikinci yükleme ile uğraşmadan zaman kaybını engelliyorum. Teşekkür ederim.
 
Deneyin. Alıntıdır..

Kod:
Sub Multi_FindReplace()
'PURPOSE: Find & Replace a list of text/values throughout entire workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long
 
fndList = Array("gümüş", "bakır", "kelt")
rplcList = Array("demir", "aliminyum", "zelt")

'Loop through each item in Array lists
  For x = LBound(fndList) To UBound(fndList)
    'Loop through each worksheet in ActiveWorkbook
      For Each sht In ActiveWorkbook.Worksheets
      sht.Cells.Find 45, , , xlPart
        sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
      Next sht
  Next x
End Sub
 
Sizin talebiniz formül sonucunu değiştirmek. Bunu formülü bozmadan yapamazsınız.

Verileri Zirve programına yükledikten sonra HESAP FİŞİ sayfasında R sütununa "Aktarıldı" gibi bir ifade yazdırırsanız yol alabilirsiniz diye düşünüyorum.
 
Deneyin. Alıntıdır..

Kod:
Sub Multi_FindReplace()
'PURPOSE: Find & Replace a list of text/values throughout entire workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("gümüş", "bakır", "kelt")
rplcList = Array("demir", "aliminyum", "zelt")

'Loop through each item in Array lists
  For x = LBound(fndList) To UBound(fndList)
    'Loop through each worksheet in ActiveWorkbook
      For Each sht In ActiveWorkbook.Worksheets
      sht.Cells.Find 45, , , xlPart
        sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
      Next sht
  Next x
End Sub

Sy. Excelokyanus50 ;
ilginiz için teşekkür ederim. Burada şöyle bir sorun ile karşılaşıyorum excel dosyasında ki bütün İŞLE' ri değiştiriyor ama ben sadece
HESAP FİŞİ sayfası Q sutunu
KOM sayfası P sutunu
Virman sayfası E sutunu ve H sutunu
iş sayfası L sutunu
Halk sayfası H sutunu
kontur sayfası G sutunu larında bulunan İŞLE' leri TAMAM yapmak istiyorum teşekkür ederim.
 
Sizin talebiniz formül sonucunu değiştirmek. Bunu formülü bozmadan yapamazsınız.

Verileri Zirve programına yükledikten sonra HESAP FİŞİ sayfasında R sütununa "Aktarıldı" gibi bir ifade yazdırırsanız yol alabilirsiniz diye düşünüyorum.


Sy. Korhan bey ;

Zirve Programına yükleme yaptıktan sonra HESAP FİŞİ sayfası Q Sutunda ki İŞLE ' leri manuel olarak TAMAM yapıyorum sadece bu Mauel yapmayı makro ile yapmak istiyorum
Q sutunun da Düşeyara şartı var her veri Zirveye yüklenmiyor eğer şart uyarsa İŞLE çıkıyor bu İŞLE çıkınca Sayfa1 ' e aktarıyor ordan da Zirve Programına yükleme yapıyorum yükleme sonrasında ise İŞLE' leri TAMAM yapıyorum yok şart uymuyor ise Hayır diyor o zaman Sayfa1' e veri gitmiyor
ilginize teşekkür ederim.
 
Bu kodu deneyiniz.

C++:
Option Explicit

Sub Degistir()
    Dim Sh As Worksheet, Sayfa As Variant, Veri As Range
    Dim Alan As Variant, X As Byte, Son As Long
    
    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
    End With
    
    Sayfa = Array("HESAP FİŞİ", "KOM", "Virman", "Virman", "iş", "Halk", "kontur")
    Alan = Array("Q2:Q", "P2:P", "E2:E", "H2:H", "L2:L", "H2:H", "G2:G")
    
    For X = LBound(Sayfa) To UBound(Sayfa)
        Set Sh = Sheets(Sayfa(X))
        Son = Sh.Cells(Sh.Rows.Count, Split(Alan(X), ":")(1)).End(3).Row
        For Each Veri In Sh.Range(Alan(X) & Son)
            If UCase(Replace(Replace(Veri.Value, "ı", "I"), "i", "İ")) = "İŞLE" Then Veri.Value = "TAMAM"
        Next
    Next
    
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
    End With
    
    MsgBox "Değişiklikler uygulanmıştır.", vbInformation
End Sub
 
Bu kodu deneyiniz.

C++:
Option Explicit

Sub Degistir()
    Dim Veri As Range
    For Each Veri In Range("Q2:Q" & Cells(Rows.Count, "Q").End(3).Row)
        If Veri.Value = "İŞLE" Then Veri.Value = "TAMAM"
    Next
   
    MsgBox "Değişiklikler uygulanmıştır.", vbInformation
End Sub

Sy. Korhan ;
Elinize ve Emeğinize sağlık kod çok güzel çalışıyor lakin tek sorun
HESAP FİŞİ sayfası Q sutunu
KOM sayfası P sutunu
Virman sayfası E sutunu ve H sutunu
iş sayfası L sutunu
Halk sayfası H sutunun da hepsinde çalışmasını sağlamak teşekkür eder iyi günler dilerim.
 
Kodu revize ettim. Son halini tekrar deneyiniz.
 
Ben #6 nolu mesajınızın ekindeki dosyada sorunsuz çalıştırabiliyorum.
 
Ben #6 nolu mesajınızın ekindeki dosyada sorunsuz çalıştırabiliyorum.

Sy. Korhan Bey ;
Özür dilerim ben modül yerine halk sayfası kod kısmına yapmışım.
Gerçek dosya üzerinde deneme yaptığımda 3000 satırdı hesaplanıyor (4 işlemci )%54 sağ alt köşede yanım yanım sönüyor öylece olduğu gibi duruyor acaba sebebi nedir. Teşekkür ederim.
 
Geri
Üst