VBA באקסל....

שירן10

New member
VBA באקסל....

היי לכולם, אני מנסה לתכנת מאקרו באקסל ב- VBA לראשונה בחיי עד כה הולך לא רע בכלל כי אני יודעת מעט VB ב-2 מילים מה אני רוצה לעשות: יש לי בגיליון א דו"ח נתונים גולמי גיליון ב מכיל טבלת ובה מידע על העובדים כמו: קוד עובד, שם פרטי, וכן הלאה בגיליון א בעמודה הראשונה יש קוד העובד ואילו אני רוצה שעמודה B תציג את שם העובד הכתוב בגיליון B. לשם כך אני משתמשת בפונקצית vblookup אשר רצה על כל אחד מהשורות בעמודה הראשונה ומחפשת את ערך התא (קוד עובד) בגיליון B. הבעיה שלי היא כפולה - הדוח הגולמי בגיליון הראשון יכול להכיל מספר לא קבוע של רשומות ולכן אני מריצה פונציה שרצה על כל התאים בעמודה זו מ-1 עד 1000 (התקרה המקסימילית שנבחרה שרירותית. - מדובר בבזבוז כי איני יכולה לדעת את כמות הרשומות. הבעיה השניה היא שבגיליון B בו יש את כל הנתונים של העובדים גם ייתכנו מספר לא קבוע של שורות וכאשר אני רוצה לחפש באמצעות פונקצית VLOOKUP אני לא יודעת עד איזו שורה לחפש - האם יש דרך לדעת עד איזו שורה מלאה בטקסט? הבעיה הכפולה היא למען האמת אחת - האם יש פונקציה או אינדיקציה כלשהי לדעת כמה שורות כתובות בגיליון ? אם למישהו יש רעיון - אני מאוד אשמח לשמוע שירן
 
הייתי בסרט הזה

בעבר הרחוק (לפני 8 שנים לפחות) התעסקתי עם עניינים דומים למה שאת מתארת. כמה הערות: * בשורה התחתונה, מרגע שמתחילים עם מאקרו'ס ב VBA כדאי לעזוב את הפונקציות המובנות כי הן לא מספקות את הסחורה... * סוף קלט: גם אני נתקלתי במצב שבו לא היה סוף ידוע מראש לשורות הקלט (ואצלך, כמה נחמד, זה קורה בשני גיליונות שונים...), ופשוט רצתי בלולאה עד שצברתי מספיק שורות ריקות רצופות (נניח 10 שורות ריקות) שמבחינת הלקוח זה היה סימן מספיק ברור לסוף הקלט. * את יכולה לממש את ה lookup ידנית דרך VBA * את יכולה לבנות ולהריץ מאקרו שינרמל את הגיליונות (יעיף שורות ריקות) לפני תחילת העבודה. וזו תהיה האחריות של הלקוח להריץ את המאקרו הזה.
 
ניתן לקפוץ לתא האחרון המכיל נתונים

בגליון הנתונים ע"י הפקודה: ActiveCell.SpecialCells(xlLastCell).Select ואז ניתן לשלוף את השורה הנוכחית ע"י ActiveCell.Row
 
למעלה