• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Metin Olarak Saklanan Sayı Hatası

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

RBozkurt

Yeni Üye
Kullanıcı Bilgileri
Katılım
25 Ara 2021
Mesajlar
303
Çözümler
26
Aldığı beğeni
164
Excel Versiyonu
Office 2021 TR
Konuyu Başlatan
Merhaba,

2sayfadan oluşan bir çalışma düşünelim
Sayfa2 de F Sütununda değerler alttaki gibi Metin Olarak Saklanan Sayı şeklinde.

Her seferinde hücreye tıklayıp çıkarak veya F2+Enter ile bu ibareyi kaldırıyorum.

Konu ile ilgili varsa kod önerebilirmisiniz?

Adsız.png
 
Çözüm
Sayın RBozkurt 8 nolu mesajdaki kodlarda
F sütununa verilerin nasıl geldiği belli
değil. Dosyanızı indirdim sadece N sütununda
veri var neyi nasıl yapacağımı anlamadım.
Ama aşağıdaki kodlar işinizi görür.

CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Merhaba,

Boş bir hücreye 1 yazın ve kopyalayın.
F sütununu seçin özel yapıştır-çarp seçeneği ile yapıştırın.
 
Merhaba,

Boş bir hücreye 1 yazın ve kopyalayın.
F sütununu seçin özel yapıştır-çarp seçeneği ile yapıştırın.

Merhaba sayın Mahir64

Makro ile eklemem gerekiyor. Program şeklinde ayarlıyorum. Farklı kullanıcılar olacağı için verileri çekerken arka planda makroya bağlayacağım.
 
Olayın kaynağına inmek gerekiyor. O hücreler neden "metin olarak" şekline dönüşüyor.
Muhtemelen textboxlar ile sayısal işlem yapıyorsunuz. Elde ettiğiniz değeri hücreye yazıyorsunuz.
Cevabınıza göre yol haritası çizebiliriz.
 
Buyurun:

Range("A1").NumberFormat = "0"
Range("A1") = alan1 * 1
 
Olayın kaynağına inmek gerekiyor. O hücreler neden "metin olarak" şekline dönüşüyor.
Muhtemelen textboxlar ile sayısal işlem yapıyorsunuz. Elde ettiğiniz değeri hücreye yazıyorsunuz.
Cevabınıza göre yol haritası çizebiliriz.

Sayın ubak veriler el ile girilse problem yok, kopyala yapıştır yapılırsa oluşuyor

Yukarıdaki kod F sütunundaki dolu olan tüm hücrelere nasıl yapılır
 
Eğer F sütununu zaten makro ile dolduruyorsanız ilgili hücrenin doldurulduğu satırın altına bu kodları eklemeniz yeterlidir.
Tabi kendi satır numaranızı kullanmanız gerekir.
'Sizin kodlarınız
Range("F1").NumberFormat = "0"
Range("F1") = Range("F1") * 1
'Sizin kodlarınız.

Eğer sütundaki hücreleri döngü içinde dolduruyorsanız şu şekilde kullanabilirsiniz:
for i = x to y 'sizin döngünüz
'Sizin kodlarınız.
Range("F" & i).NumberFormat = "0"
Range("F" & i) = Range("F" & i) * 1
'Sizin kodlarınız.
Next i
 
Eğer F sütununu zaten makro ile dolduruyorsanız ilgili hücrenin doldurulduğu satırın altına bu kodları eklemeniz yeterlidir.
Tabi kendi satır numaranızı kullanmanız gerekir.
'Sizin kodlarınız
Range("F1").NumberFormat = "0"
Range("F1") = Range("F1") * 1
'Sizin kodlarınız.

Eğer sütundaki hücreleri döngü içinde dolduruyorsanız şu şekilde kullanabilirsiniz:
for i = x to y 'sizin döngünüz
'Sizin kodlarınız.
Range("F" & i).NumberFormat = "0"
Range("F" & i) = Range("F" & i) * 1
'Sizin kodlarınız.
Next i


Aşağıdaki mesajdaki kodlar ile dolu sayfadan veriyi çekiyorum. F sütunundan N sütununa çekiyor.
Alttaki gibi doğrumudur?


For i = 0 To Rsdoldur.RecordCount - 1 satırından sonra

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.




Konu: Çözüldü - Makro ile Koşullu Düşey Ara Mantığında Veri Çektirme

C++:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Sizin paylaştığınız kodlarda ADO kullanılmış. Maalesef ADO konusunda hiç bir bilgim yoktur.
ADO kodları konusunda bilgisi olan bir arkadaşımız yardımcı olabilir.
Yada ADO kodlarından sonra N sütunu içi ayrıca kod düzenlemesi yapabiliriz.
Ancak ilk satır ve son satırı bilmem lazım.
Döngüye sokmadan da alan seçimi ile yapabiliriz. Dediğim gibi ilk ve son hücreyi bilmem lazım.
 
Sizin paylaştığınız kodlarda ADO kullanılmış. Maalesef ADO konusunda hiç bir bilgim yoktur.
ADO kodları konusunda bilgisi olan bir arkadaşımız yardımcı olabilir.
Yada ADO kodlarından sonra N sütunu içi ayrıca kod düzenlemesi yapabiliriz.
Ancak ilk satır ve son satırı bilmem lazım.
Döngüye sokmadan da alan seçimi ile yapabiliriz. Dediğim gibi ilk ve son hücreyi bilmem lazım.

Sayın ubak
Ayrı bir makro olarak değerlendirirsek

Ekteki dosyada bu işlemi yapabilirmisiniz?
Normal şartlarda veriler taşınmadan önce A:M hücreleri dolu.

Veriyi N satırına kopyalatayım. Arkasına 2.makro ile yukardaki çarpma işlemini uygulatayım.

Son dolu M satırıda olabilir, Son N satırıda olabilir bu şekilde döngü oluşturulabilir mi?
 

Ekli dosyalar

  • test.xlsx
    14 KB · Gösterim: 4
Paylaştığınız kodların olduğu asıl dosyayı paylaşabilirseniz daha sağlıklı olur.
 
Bu kodları
Range("N" & i + 2).NumberFormat = "0"
Range("N" & i + 2) = Range("N" & i + 2) * 1

Destination:=Worksheets("doldur").Range("N" & i + 2)
satırının altına ekleyip dener misiniz?
 
Sayın RBozkurt 8 nolu mesajdaki kodlarda
F sütununa verilerin nasıl geldiği belli
değil. Dosyanızı indirdim sadece N sütununda
veri var neyi nasıl yapacağımı anlamadım.
Ama aşağıdaki kodlar işinizi görür.

CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Çözüm
Sayın excelcan sadece hücre değerini sayısala çevirmek yetmeyecektir.
Hücre biçimlendirmesini de "metin" den "sayı" ya çevirmek gerekli.
Aksi halde hücreye veri girişinde tekrar aynı hata oluşacaktır.
 
Üstadım son yaptığınız işlemle F sütununda kaç satır varsa muhtemelen 1048576 hepsini döngüye sokuyorsunuz.
Yani F sütununu komple döngüye sokuyorsunuz.
Ayrıca ilk başta F sütunu dediniz. Sonra paylaştığınız kodlarda N sütunu oldu. Hangi sütuna işlem yapacağınıza da karar vermeniz gerek.
 
Sayın RBozkurt Sayın Ubak'ın uyarısı üzerine kodların revize edilmiş hali aşağıdadır.
Sayfa1 yazan yerleri siz kendi sayfanıza uyarlayın.
Dim cell As Range
Sheets("Sayfa1").Range("F2:F" & Sheets("Sayfa1").Cells(Rows.Count, "F").End(3).Row).Select
For Each cell In Selection
If Not IsEmpty(cell) And IsNumeric(cell.Value) Then
cell.Value = CDbl(cell.Value)
End If
Next cell

Selection.NumberFormat = "0"
Sheets("Sayfa1").Range("F1").Select
 
Üstadım son yaptığınız işlemle F sütununda kaç satır varsa muhtemelen 1048576 hepsini döngüye sokuyorsunuz.
Yani F sütununu komple döngüye sokuyorsunuz.
Ayrıca ilk başta F sütunu dediniz. Sonra paylaştığınız kodlarda N sütunu oldu. Hangi sütuna işlem yapacağınıza da karar vermeniz gerek.


Sayın ubak

Sayfa1 ve Sayfa2 olarak 2 farklı sayfada işlem yapıyordum.
Hedef sayfası Sayfa1, Kaynak sayfası Sayfa2.

Kaynak sayfasında F sütunu, Hedef sayfasındaki N sütununa çağrılıyordu.
Her ikisinden birinde bu işlemin yapılması yeterli olacaktı.

11. mesajda veriyi çektikten sonra farklı bir makro ile bu işlemi gerçekleştirebiliriz diye yazdım.

Döngü şu şekilde olabilirdi A ile M hücreleri dolu. Eğer buradaki örnek M'de son dolu hücreye kadar N'ye N*1 işlemi yaptırılabilirse daha doğru olurdu. Yazmak zor, doğru anlatmak daha zor 🙏
 
Yeni bir döngü oluşturmanıza gerek yok.

Paylaştığınız kodlarda;

Bu kodları
Range("N" & i + 2).NumberFormat = "0"
Range("N" & i + 2) = Range("N" & i + 2) * 1

Destination:=Worksheets("doldur").Range("N" & i + 2)
satırının altına ekleyip denemeniz yeterlidir.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst