Çözüldü Makro Satırlar Doğru Hareket Etmiyor

minidora

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Ekteki dosyada çalışanlarımız 5 grupta yer alıyor. A,B,C,D ve X. Tabloda genel bir değişiklik yaptığım için şu an B'den bir satırı D'ye yada C'den A'ya gibi hareket ettirdiğim zaman üst yada alttan bir satırı da beraber getiriyor. Yani tek başına hareket etmiyor. Bunun nasıl üstesinden gelebilirim? Aynı zamanda B-C-D satırları için;
B1,B2,B3,B4,B5
C1,C2,C3,C4,C5
D1,D2,D3,D4,D5 şeklinde sıralama şartı verebilir miyiz? Yani bir personel B grubu operatörü olacaksa B1 dediğinde B'nin en üst sırasına geçecek. Hamurda olacaksa B2 yazacağım B'nin 2. satırına geçecek.

Birde bunlar olurken B1 yaazarsam D hücresi otomatik opeatör olsa aynı şkeilde C1 ve D1 için. Yada B4 yazınca döner tabla olsa yine C4 D4 içinde geçerli olacak şekilde. Umarım zorlu bir şey değildir.
HTML:
You must log in to view content
(254 satır)
 

Ekli dosyalar

Foruma hoşgeldiniz Sayın @minidora .

Kodlarınız çok karışık geldi bana (başkasının hazırladığı kod olunca normal durum tabi)
Renklendirme, kenarlık gibi biçimlendirme işlemleri için kod kullanmaya gerek var mı sizce? Koşullu biçimlendirme bunun için var.
Mevcut makrodaki meramınız nedir/nelerdir, ne/neler amaçlanmıştır, detaylıca bunu da belirtin isterseniz.

İsteğiniz; B sütununda örneğin X olan bir hücreyi A yaptığınızda, SIRALAMAda bu satırın A grubuna dahil olması mıdır?
Yani istek; B sütununda bir hücre içeriği değiştiğinde, birincil sıralama kriteri B sütununa yazılan TİP bilgisi,
ikincil kriter ise ADI SOYADI (ya da sicil) bilgisi olacak şekilde SIRALAMA ve B sütunundaki harfe göre renklendirme midir?

.
 
Merhaba @Ömer BARAN Bey,
Forumunuz hayırlı olsun. Sanırım 2 veya 4 yıllık bir forum, çok eski diyemeyiz.
O açıdan düşünmeyip her şeyi makro ile çözme savaşına girmiştim. Dediğiniz gibi renk skalası koşullu biçimlendirme ile çözülebilir. Bu durumda benim için önemli olan talep:
A grubu için sıralama önemi yok. Yeter ki bir personele A dersem B'nin üst grubunda yer alsın.
B-C-D ve X için numara sırası yaptım. Bir personel eğer B1'e geçerse B2 ile A arasına girmeli. Onu C3e alacaksam C2 ile C4 arasına girmeli. X zaten yeter ki D'nin en altında olsun. Onlar çıkan veya aktif çalışmayan grup.
Her grup sırayla: Operatör, Hamur, Paketleme, Döner Tabla ve Kalite Kontrol ekibinden oluşacak. O yüzden ben birini C3ten D2 grubuna alıyorsam C ve A sütunları mantıken değişmemeli. Çünkü A zaten personel sayısını görmek için var. D sütunu içinse her grubun yetki alanı ve sırası belli.
 

Ekli dosyalar

Açıklamanızı tam olarak anlamamış olabilirim.
Son örnek belge üzerinden sorayım;
15'nci satırdaki (sicil ro 13) C3 değerini, D2 olarak değiştirdiniz.
İyi de bu sırada, 19'uncu satırda (sicil 17) zaten sir tane D2 var o ne olacak?

Madem Operatör/Hamur/Paketleme/Döner Tabla/Kalite Kontrol değerleri sıralama ve değer olarak sabit (kendi içinde sırası değişmeyecek)
o zaman bunların başına sıralamada işe yaramak üzere birer sayı eklerseniz çözüm kolaylaşabilir ( 1.Openatör / 2.Hamur / 3.Paketleme ...gibi)

D sütunundaki bu metinler, A ve X'ler için yok sanırım.

İsterseniz, makroları devre dışı bıraktıktan sonra Mart sayfasının bir kopyasını oluşturun.
Ardından hangi hücreyi neyken ne yaptığınızı net söyleyerek (X/A/D1 değil de B17 hücresini, B7 hücresini gibi adresiyle)
asıl mart sayfası nihai olarak nasıl şekil alacaksa, kopya mart sayfasını buna göre elle düzenleyin ki olması gereken nedir kesin olarak netleşsin.
Bu haliyle de yeni bir örnek belge yükleyin, durumu görelim.

Sorunuz bana basit bir sıralama sorusu gibi görünüyor, yanıltmak istemediğim için detay bilgi ve yeni örnek belge istiyorum.
Şimdi bilgisayardan kalkmam gerekiyor, gün içerisinde konuya tekrar bakarım.

.
 
A grubu idari kısmı bulundurduğu için sıralama yok. Ben yeni işe başlayan birine A dersem B'nin üstünde A'nın en altına alması yeterli benim için.
Aynı durum X içinde geçerli. X ayrılan personel olduğu için bir kişi ayın 15in ayrıldıysa o ayın hesabında yer almıyor. O yüzden B-C-D grupları yerine X olarak en aşağıya taşıyorum. Veya 1 ay boyunca gelmeyecek raporlu/ izinli personel vs. Aktif çalışmayan grup X kısacası.

B-C-D için ben bir değer verdiğim zaman alt ve üst değerinin arasında bulunması yeterli. B3 dediğim zaman B2 ve B4 arasında olmalı C1 dediğim zaman B5 ve C2 arasında olmalı. D5 dediğim zaman D4 ile X arasında durabilmeli.

Makroyu sildim. Sicil no personel sicilini değil aslında personel sayısını gösteriyor. Şu an 25 personel var ve 25 yazan kişiyi B1'e alırsam 25 yukarı çıkıyor ve sıralama bozuluyor. ben şu an X dışında aktif 20 çalışan olduğunu görüyorum.

Hücre komutu ile söylemek gerekirse;

Eğer B15'in içini C3 değilde B2 yaparsam B15:BC15 otomatik olarak B9:BC9 satırına gelir geri kalanlar aşağı kayar.

Maaşlar adında yüklediğim dosya benim eskiden kullandığım excel. Makroya bakarsanız biraz daha sağlıklı çalışıyor. B yerine C yazınca ilgili gruba geçiyor. Bir vardiyada nadirde olsa 2 tane hamurcu veya 2 tane paketlemeci olabileceği için birden fazla kişiye B2 dersem aynı anda 2 tane B2 B1'in altında yer alabilir.
 

Ekli dosyalar

@minidora

Mevcut Worksheet_Change kodunu silip onun yerine aşağıdakini yapıştırın,
ardından B sütunundaki değerlerde değişiklik yaparak sonucu gözlemleyin.

VBA:
You must log in to view content
(4 satır)
 
@Ömer BARAN Bey peki mevcuttaki koda harf değerinin rakamı 1 ise D hücresine Operatör, 2 ise Hamur, 3 ise Paketleme, 4 ise Döner Tabla, 5 ise Kalite Kontrol yazmasını sağlayabilir miyiz? A için manuel giriş sağlıyoruz, X için zaten görevin bir önemi kalmıyor.
Aynı zamanda koşullu biçimlendirmeyi sanırım sağlayamadım.
Yani örnek: B8'e gelen hücre kırmızı ise B8:BC8'in tamamen kırmızı olması. A; yeşil, B; kırmızı, C; mavi, D; sarı, X; gri. Bir hücreye eğer o değere eşitse ilgili renk emrini veriyorum fakat eğer o öyleyse diğer satır hücrelerinin de aynı renk olması gerektiğini tanımlayamıyorum.

Bu arada ellerinize sağlık, yazılan destan karşısında olması gerekeni 3 satırda bitirmişsiniz.
 
Belge ekte olup, oluşturduğum kod aşağıda..

VBA:
You must log in to view content
(14 satır)
 

Ekli dosyalar

  • 1616790529135.webp
    1616790529135.webp
    25.3 KB · Görüntüleme: 2
@minidora .

Forumumuzda teşekkür/memnuniyet ifade etmek için yapılabilecek şeyler var elbette.

-- forumumuzda mümkün olduğunca sık ve uzun süreli çevrimiçi kalarak forumdaki diğer konu/soru ve cevapları incelemek,
-- etrafınızdaki Ms.Excel kullanıcılarını forumumuzdan haberdar edip, üye olmalarını salık vermek,
-- tüm sosyal medya kanallarında forumumuza link vererek paylaşımlarda bulunmak,
-- kişiye yönelik destek için, sorun çözen kişinin mesajları altındaki Kahve Ismarla / Çay Ismarla simgelerine tıklamak,
-- forumumuza yönelik destek için VİP ÜYELİK almak (böylece ÖZEL DOSYAlara erişebilir, forumumuzu REKLAMSIZ kullanabilirsiniz) .

.
 
Merhaba, günaydın @Ömer BARAN Bey.
Dosyada bir şey dikkatimi çekti. Bir kişiyi B4'e alıp ardından X bölümüne aldığım zaman AP-AV arasındaki hücrelerde yer alan formüller yer değiştirmiyor.

1617003391246.webp


Bir personel B2'den B4'e geçmiş lakin formüller eski yerinde kalmış.
 
Moderatörün son düzenlenenleri:
Uyguladım fakat hala =+EĞERSAY(K5:AO5;AP1) formülünde A grubunu başka bir gruba aldığım zaman AP1 formülü kayıyor. A grubunun ilk kişisini B4e aldım otomatik formül =+EĞERSAY(K3:AO3;AP7) oldu tekrar A'ya alsam da formül sabit kalıyor.
 
Örnekte Vedat var. A 1. sırada AP3 hücresi =+EĞERSAY(K3:AO3;AP2) ben Vedat'ı her hangi bir yere alıyorum. B5 tercih ettim; AP9 hücresi =+EĞERSAY(K11:AO11;AP10) oldu ki AP2 yine AP2 olması gerekiyordu. Tekrar A almak istediğim zaman A'nın en altına aldı formül bozuk bu arada altındaki A hücresini de bozdu. AP4 hücresi AP3 olduğu için =+EĞERSAY(K3:AO3;AP2) olması gereken hücre =+EĞERSAY(K3:AO3;AP1) oldu.
Vedat'ı manuel el üste alıyorum;

=+EĞERSAY(K3:AO3;AP7)oluyor aynı zamanda manuel harekette hata veriyor.


1617023377008.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Formüllerinize ilişkin düzeltmeye ihtiyaç mevcut.

-- AP3'teki formülü =EĞERSAY($K3:$AO3;AP$2) olarak değiştirip, Toplam sütununa kadar sağa ve son veri satırına kadar aşağı kopyalayın.
-- AX3'teki formülü =EĞERSAY($K3:$AO3;AX$2) olarak değiştirip, Toplam sütununa kadar sağa ve son veri satırına kadar aşağı kopyalayın.

Başka bir sorun yok sanırım.
Sadece işlem hızı bakımından döngüye gerek olmadan işlem yaptırmak daha mantıklı geldi.
İşlem farkı yok, sadece hız açısından değişiklik öneriyorum (kodun eskisinde de sorun yok aslında)

VBA:
You must log in to view content
(14 satır)
 
Ben anlamadım. Anlam yükleyemiyorum :) Bastığım anda işleme giriyor hızını çözemiyorum. Elinize sağlık.

Bunu neden gösterir? Formül her zaman ki formül aslında.

1617026295151.webp
 
Moderatörün son düzenlenenleri:
Kodun önceki halinde önce SIRALAMA yapılıyor, sonra 3'üncü satırdan son satıra kadar tüm hücrelerin sağdan 1 karakteri tek tek kontrol edilip C sütunundaki değerler YENİLENİYOR idi. Kodun yeni halinde ise, sıralama yapmadan önce ve sadece değiştirilen hücrenin satarındaki değer değiştiriliyor/kontrol ediliyor. Döngü olmadığı için de işlem, anında/hızlıca gerçekleşiyor.

Belirttiğiniz UYARI :
Bir hücrede, komşu hücrelerdeki formüllerden farklı bir formül olduğunda bu uyarıyı görürsünüz, normaldir, zaman zaman yararlıdır da.
Denemek için ilgili hücrenin sağındaki veya solundaki formülü silince uyarı kaybolur.

ilgili hücrelerin tümünü seçip HATAYI YOKSAYı seçerseniz bu belgedeki bu hücreler için artık o işareti görmezsiniz.
Önermem ama isterseniz; EXCEL SEÇENEKLERİ >> FORMÜLLER >> HATA DENETLEME SEÇENEKLERİ kısmından hata denetimini tamamen devre dışı da bırakabilirsiniz.

.
 
Umarım çok olmuyorumdur fakat B sütununda eğer A varsa B:BC ilgili sütun hücreleri yeşil; B varsa (B1,B2,B3,B4,B5) kırmızı, C varsa (C1,C2,C3,C4,C5) mavi, D varsa(D1,D2,D3,D4,D5) sarı, X varsa gri olsun nasıl yapabiliriz?

Koşullu biçimlendirme ile dünden beri deniyorum başarılı olamadım ancak ilgili hücreyi boyayabiliyorum.
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
20
Üst