מרובע

משתמש מקצוען
עריכה תורנית
D I G I T A L
גם שגיאה
Screenshot_38.png
 

אפר

סתם מתעניין...
מנוי פרימיום
אצלי עובד רק לא מעתיק לכל הגליונות את עמודת כותרת השורה
מצו"ב קוד שמעתיק
קוד:
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
 

מרובע

משתמש מקצוען
עריכה תורנית
D I G I T A L
אולי יש נוסחאות?
והם לא מועתקות טוב?
זה קובץ ריק שכתבתי בו את הערים והתאריכים בלי שום נוסחאות.
ופתחתי את עריכת VBA והדבקתי את הקוד הנ"ל, ואז הפעלתי אותו ב"הפעל" וזה התוצאה.
 

אפר

סתם מתעניין...
מנוי פרימיום

מרובע

משתמש מקצוען
עריכה תורנית
D I G I T A L
סוף סוף עבד לי.
תוכל להסביר בשתי מילים מה ההבדל בין להדביק סתם בעורך vba לבין להדביק בתוך מודול?

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


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

Cהרשי

משתמש רשום
שלום רב,

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

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

RBF

משתמש צעיר
איך הופכים את האותיות באקסל?
כל העברית כתוב לי משמאל לימין
כך:
ןימיל לאמשמ
 

מרובע

משתמש מקצוען
עריכה תורנית
D I G I T A L
ועוד שאלה, האם אפשר ליצור תיבת דו שיח שתשאל אותי לפני כן כמה עמודות יש לכל עיר? כי לא תמיד זה שתים.
לכאורה הפתרון הוא להוסיף לקוד הצהרת משתנה ויצירת INPUTBOX שיכניס ערך למשתנה זה. ואז נחליף את ה2 במשתנה הזה.

קוד:
dim Num_Cells as integer
Num_Cells = InputBox("כמה עמודות לכל עיר?")
 

xl3391

משתמש מקצוען
תוכל להסביר בשתי מילים מה ההבדל בין להדביק סתם בעורך vba לבין להדביק בתוך מודול?
זה לא 'סתם' בעורך הVBA.
אם מדביקים בקטע ששמור לגיליון מסוים הקוד מוגבל לגיליון המסוים.
אם מדביקים בקטע ששמור לחוברת העבודה הקוד מוגבל לחוברת העבודה (הקוד הנ"ל היה עובד גם אם היה מודבק בקטע זה, אבל אם למשל היית מנסה להדביק בחוברת חדשה היתה מתקבלת שגיאה).
אם מדביקים במודול חדש - הקוד לא מוגבל.
 

xl3391

משתמש מקצוען
לכאורה הפתרון הוא להוסיף לקוד הצהרת משתנה ויצירת 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
 

xl3391

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

אפר

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

אפר

סתם מתעניין...
מנוי פרימיום
על פי רוב המספרים לא הפוכים לכן הנוסחה לא מושלמת כי היא הופכת גם אותם
מצורף קוד שהופך רק טקסט ולא מספרים
קוד:
Sub opsStr()

    Dim cl
    Dim rn As Range
    Set rn = Selection
    
    For Each cl In rn
        cl.Value = TextRev(cl.Value)
    Next
    
End Sub

Public Function TextRev(Str As String) As String

    Dim i As Long
    Dim TextNum As String
    
    For i = 1 To Len(Str)
        If IsNumeric(Mid(Str, i, 1)) Then
            TextNum = TextNum & Mid(Str, i, 1)
        Else
            TextRev = Mid(Str, i, 1) & TextNum & TextRev
            TextNum = ""
        End If
    Next i
    
    TextRev = TextRev & TextNum
    
End Function
 

RBF

משתמש צעיר
מצורף קוד שהופך רק טקסט ולא מספרים
קוד:
Sub opsStr()

    Dim cl
    Dim rn As Range
    Set rn = Selection
  
    For Each cl In rn
        cl.Value = TextRev(cl.Value)
    Next
  
End Sub

Public Function TextRev(Str As String) As String

    Dim i As Long
    Dim TextNum As String
  
    For i = 1 To Len(Str)
        If IsNumeric(Mid(Str, i, 1)) Then
            TextNum = TextNum & Mid(Str, i, 1)
        Else
            TextRev = Mid(Str, i, 1) & TextNum & TextRev
            TextNum = ""
        End If
    Next i
  
    TextRev = TextRev & TextNum
  
End Function
תודה רבה!
איפה מדביקים את זה?
 

ברון

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

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קיט א'

א אַשְׁרֵי תְמִימֵי דָרֶךְ הַהֹלְכִים בְּתוֹרַת יְהוָה:ב אַשְׁרֵי נֹצְרֵי עֵדֹתָיו בְּכָל לֵב יִדְרְשׁוּהוּ:ג אַף לֹא פָעֲלוּ עַוְלָה בִּדְרָכָיו הָלָכוּ:ד אַתָּה צִוִּיתָה פִקֻּדֶיךָ לִשְׁמֹר מְאֹד:ה אַחֲלַי יִכֹּנוּ דְרָכָי לִשְׁמֹר חֻקֶּיךָ:ו אָז לֹא אֵבוֹשׁ בְּהַבִּיטִי אֶל כָּל מִצְוֹתֶיךָ:ז אוֹדְךָ בְּיֹשֶׁר לֵבָב בְּלָמְדִי מִשְׁפְּטֵי צִדְקֶךָ:ח אֶת חֻקֶּיךָ אֶשְׁמֹר אַל תַּעַזְבֵנִי עַד מְאֹד:
נקרא  29  פעמים

לוח מודעות

למעלה