• DİKKAT !

    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 Dosya Yükleme tamamen ücretsizdir.

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

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

RBozkurt

Yeni Üye
Katılım
25 Ara 2021
Mesajlar
322
Çözümler
36
Aldığı beğeni
204
Excel V
Office 2021 TR
Konu Sahibi
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.

HTML:
CSS:
İçeriği görebilmek için Giriş yap ya da Üye ol.
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.
 
Konu Sahibi
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
 
Konu Sahibi
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
 
Konu Sahibi
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

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.




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

HTML:
C++:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
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.
 
Konu Sahibi
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?
 
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.

HTML:
CSS:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Çö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.
 
Konu Sahibi
Ü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.
HTML:
JavaScript:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Ü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.
Geri
Üst