בקשת מאקרו

בקשת מאקרו

שלום,
אני מבקש למשוך נתונים מגיליון אחד ולסדר אותם בטבלה בגיליון שני באופן אחר/מיוחד.
(בדוגמה - מגיליון A12 אל גיליון NEW)
הסבר בפנים...
תודה לעוזרים
7/2010
 
ניסיתי לפני...

וגם לאחר שהעליתי בקשה זו. לא קל עבורי...
אבל אני רוצה לשאול משהו עקרוני :
אני יודע למצוא את כל הערכים הרצויים בגיליון. מס' הערכים יכול להיות 3 ויכול להיות 30...
והשאלה : לא נראה לי הגיוני ל'תזז' את ה VBA מגיליון אחד לגיליון NEW , לצורך הדבקה - 30 פעם !!
האם אפשר ואיך (באמצעות מאקרו) לשמור את כל הערכים בזיכרון של המחשב... ובסיום ה LOOP רק אז לעבור פעם אחת לגיליון NEW ולהדביק את הערכים אחד אחרי השני ?
קטע קוד כזה יכול מאוד לעזור.
תודה
 

iyyi

New member
להעתיק מגיליון לגיליון בתוך לולאה לא אומר בהכרח "לתזז"

קודם כל אני יכול להבטיח לך שאקסל לא יפתח בשביתה גם אם הוא יעבוד עוד כמה עשיריות שנייה...כך שאין בעיה עם "תיזוז".

דבר שני. אתה יכול להגדיר את גיליון NEW בתור משתנה ע"י הפקודה
Set n = Sheets("NEW")

לאחר מכן אתה יכול לשלב בלולאה המופעלת מגיליון A12 פקודות כתיבה. למשל:
n.cells(21,1)=cells(6,1)
הפקודה הזאת תכתוב בגיליון NEW בתא A21 את הערך הנמצא בתא A6 מגיליון A12.
זאת פקודה שתעבוד ביעילות ויחסית מהר.
מה שיהיה תיזוז הוא אם תבצע פעולות Select בין הגיליונות בכל פעם שאתה רוצה לכתוב או לקרוא, ואת זה אין סיבה לעשות.
 
תודה...

כמה חכם ופשוט.
ניחשת נכון, התכוונתי להשתמש ב Select ובעיני רוחי כבר ראיתי את הריצודים במסך...
פעלתי לפי הצעתך, כעת זה עובד מושלם ! דאגתי להגדיר תא רצוי מחוץ ללולאה, כנקודת התחלה לשמירת הנתון הראשון, ובתוך הלולאה ערך השורה משתנה / עולה ב 1 כדי שהנתון הבא יישמר מתחת לראשון.
אבל זה לא נגמר... אני בונה קטע אחר קטע , ומקווה שלא אתייאש בדרך.
תודה
 
האם יש פקודה כזו...

לפתיחה של גיליון ששמו מתחיל באות A :
קוד:
strSheetName = "A"
Worksheets(strSheetName).Select
אצלי זה לא עובד...

 
הוספת הודעה

איך אני מוסיף הודעה מתאימה ויוצא מהרוטינה, כאשר :
הוא לא מוצא, בכל החוברת, גיליון שמתחיל ב A ?
אם אני מוסיף Else אחרי Then - אז כבר בגיליון הראשון (שלא עונה לתנאי), הוא מעלה את ההודעה...
אז איך עושים זאת ?
תודה מיכאל
 
למעלה