הקוד עובד על סינון וממש לא קשור.
כמה עמודות יש לך לכל עיר? 2?
אם כן אז אם תשאיר רק את שם העיר ותמיין עמודות לפי שם העיר (כך שהחל מעמודה B כל שתי עמודות רצופות שייכות לאותה עיר) תוכל להריץ את הקוד הבא:
קוד:
Sub CityToSheets()
    Dim i As Integer
    i = 2
    Do While Cells(1, i).Value <> ""
    
        Range(Columns(i), Columns(i + 1)).Copy
        Sheets.Add.Name = Sheets("שם גיליון שבו הטבלה").Cells(1, i).Value
        [B1].Select
        ActiveSheet.Paste
        
        Sheets("שם גיליון שבו הטבלה").Select
        i = i + 2

    Loop
End Sub
 
הוא לא נותן לי להפעיל את הקוד

Screenshot_37.png
 
שלום רב,

קיבלתי קובץ אקסל שלא מופיעים בו לשונית עם שמות הגליונות בתחתית העמוד, כלומר אני לא יכול לעבור מגיליון לגיליון וגם לא יכולה להעתיק גיליון.

איך אני מחזיר את לשונית הגיליון לתצוגה בתחתית העמוד?
 
הוא לא נותן לי להפעיל את הקוד

צפה בקובץ המצורף 709302
צריך לשנות את שם הגיליון לשם הגיליון שלך.
בכל אופן להלן קוד מעודכן שלא תצטרך לעדכן את שם הגיליון:

קוד:
Sub CityToSheets()
    Dim i As Integer
    Dim sh As String
    
    i = 2
    sh = ActiveSheet.Name
    
    Do While Cells(1, i).Value <> ""
    
        Range(Columns(i), Columns(i + 1)).Copy
        Sheets.Add.Name = Sheets(sh).Cells(1, i).Value
        [B1].Select
        ActiveSheet.Paste
        
        Sheets(sh).Select
        i = i + 2

    Loop
    Application.CutCopyMode = False
    
End Sub
 
אצלי עובד רק לא מעתיק לכל הגליונות את עמודת כותרת השורה
מצו"ב קוד שמעתיק
קוד:
Sub CityToSheets()
    Dim i As Integer
    Dim sh As String
    
    i = 2
    sh = ActiveSheet.Name
    
    Do While Cells(1, i).Value <> ""
        Range(Columns(i), Columns(i + 1)).Copy
        Sheets.Add.Name = Sheets(sh).Cells(1, i).Value
        [B1].Select
        ActiveSheet.Paste
        
        Sheets(sh).[A:A].Copy
        [A1].Select
        ActiveSheet.Paste
        
        Sheets(sh).Select
        i = i + 2

    Loop
    Application.CutCopyMode = False
    
End Sub
 
מה יכול להיות שגיאה 400 ?
 
אולי יש נוסחאות?
והם לא מועתקות טוב?
זה קובץ ריק שכתבתי בו את הערים והתאריכים בלי שום נוסחאות.
ופתחתי את עריכת VBA והדבקתי את הקוד הנ"ל, ואז הפעלתי אותו ב"הפעל" וזה התוצאה.
 
סוף סוף עבד לי.
תוכל להסביר בשתי מילים מה ההבדל בין להדביק סתם בעורך vba לבין להדביק בתוך מודול?

ועוד שאלה, האם אפשר ליצור תיבת דו שיח שתשאל אותי לפני כן כמה עמודות יש לכל עיר? כי לא תמיד זה שתים.


שאלה שניה: אני מעביר את הקובץ למישהו אחר ואני מעדיף להביא קובץ אקסל רגיל ולא קובץ עם מקרו (שיכול להציג לו סתם אזהרות וכו') האם הפתרון הוא סתם "שמור בשם" xlsx וזהו? (הוא מזהיר שהמאקרו יאבדו ואני מאשר ושלום על ישראל).
 
שלום רב,

קיבלתי קובץ אקסל שלא מופיעים בו לשונית עם שמות הגליונות בתחתית העמוד, כלומר אני לא יכול לעבור מגיליון לגיליון וגם לא יכולה להעתיק גיליון.

איך אני מחזיר את לשונית הגיליון לתצוגה בתחתית העמוד?
???
 
איך הופכים את האותיות באקסל?
כל העברית כתוב לי משמאל לימין
כך:
ןימיל לאמשמ
 
ועוד שאלה, האם אפשר ליצור תיבת דו שיח שתשאל אותי לפני כן כמה עמודות יש לכל עיר? כי לא תמיד זה שתים.
לכאורה הפתרון הוא להוסיף לקוד הצהרת משתנה ויצירת INPUTBOX שיכניס ערך למשתנה זה. ואז נחליף את ה2 במשתנה הזה.

קוד:
dim Num_Cells as integer
Num_Cells = InputBox("כמה עמודות לכל עיר?")
 
תוכל להסביר בשתי מילים מה ההבדל בין להדביק סתם בעורך vba לבין להדביק בתוך מודול?
זה לא 'סתם' בעורך הVBA.
אם מדביקים בקטע ששמור לגיליון מסוים הקוד מוגבל לגיליון המסוים.
אם מדביקים בקטע ששמור לחוברת העבודה הקוד מוגבל לחוברת העבודה (הקוד הנ"ל היה עובד גם אם היה מודבק בקטע זה, אבל אם למשל היית מנסה להדביק בחוברת חדשה היתה מתקבלת שגיאה).
אם מדביקים במודול חדש - הקוד לא מוגבל.
 
לכאורה הפתרון הוא להוסיף לקוד הצהרת משתנה ויצירת INPUTBOX שיכניס ערך למשתנה זה. ואז נחליף את ה2 במשתנה הזה.

קוד:
dim Num_Cells as integer
Num_Cells = InputBox("כמה עמודות לכל עיר?")
זה נכון. למרות שלא חייב להשתמש בinputBox אפשר לספור בקוד את המופעים של העיר הראשונה.
ובכל מקרה צריך גם בקוד עצמו לשנות קצת.
קוד:
Sub CityToSheets()
    Dim i As Integer
    Dim Num_Cells As Integer
    Dim sh As String
    
    Num_Cells = WorksheetFunction.CountIf([1:1], [B1].Value)
    i = 2
    sh = ActiveSheet.Name
    
    Do While Cells(1, i).Value <> ""
        Range(Columns(i), Columns(i + Num_Cells - 1)).Copy
        Sheets.Add.Name = Sheets(sh).Cells(1, i).Value
        [B1].Select
        ActiveSheet.Paste
        
        Sheets(sh).[A:A].Copy [A1]

        Sheets(sh).Select
        i = i + Num_Cells

    Loop
    Application.CutCopyMode = False
    
End Sub
 
איך הופכים את האותיות באקסל?
כל העברית כתוב לי משמאל לימין
כך:
ןימיל לאמשמ
להלן קוד שיכול לעזור.
צריך לסמן את טווח התאים ולהפעיל.
(לשמור קודם גיבוי בצד...)
קוד:
Sub opsStr()
    Dim rn As Range
    Set rn = Selection
    For Each cl In rn
        cl.Value = StrReverse(cl.Value)
    Next
End Sub
 

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה