السلام عليكم ورحمة الله وبركاته
قد تواجهنا احياناً وجود اعمدة تحتوي على الاسماء مع الارقام بنفس الاعمدة ونريد فصل الاسماء في عمود خاص بالاسماء وفصل الارقام الى عمود خاص بالارقام مثلاً :-
العمود A يحتوي على خلايا فيها الاسماء مع الارقام:- علي احمد سعيد عوض 73327789
ونريد فصل الخلية-الخلايا- التي تحتوي على الاسم الى العمود B ليصبح ناتج العمود :-علي احمد سعيد عوض
ونريد فصل الخلية-الخلايا- التي تحتوي على الرقم الى العمود C ليصبح ناتج العمود :-73327789
لعمل هذه الحلول نتبع التالي:-
اولاً:-
1 - افتح ملف الاكسل الذي يحتوي على البيانات ثم اذهب الى القائمة view
2 - واختار toolbars ومنه اختار visual basic
3 - تظهر لك هذه النافذه فيها عدد من الايقونات ، حاول تأشر بالفارة فوق تلك الايقونات ستجد واحدة منها باسم visual basic editor
4 - سوف تنفتح لك نافذة اخرى، اذهب الى القائمة insert واختر منها module
5 - لا تغلق هذه النافذه الان لانك سوف تكتب فيها بعض الاسطر
ثانياً:-
قم بنسخ الاسطر التالية الى النافذة الظاهرة
Public Function Split_Name(X As String) As String
Dim I As Integer
Dim Counter As Integer
Dim Data_Result As String
Dim Data_CHK As String
For I = 0 To 7
On Error GoTo E
Data_CHK = Split(X, " ")(I)
If Not IsNumeric(Data_CHK) Then
Select Case Counter
Case 0
Data_Result = Data_CHK
Case Else
Data_Result = Data_Result & " " & Data_CHK
End Select
Counter = Counter + 1
End If
Next I
E:
Split_Name = Data_Result
End Function
Public Function Split_Number(X As String) As String
Dim I As Integer
Dim Data_Result As String
Dim Data_CHK As String
For I = 0 To 7
On Error GoTo E
Data_CHK = Split(X, " ")(I)
If IsNumeric(Data_CHK) Then
Data_Result = Data_CHK
GoTo E
End If
Next I
E:
Split_Number = Data_Result
End Function
ثالثاً:-
1 - اذهب الى القائمة file واختر save
2 - قم باغلاق هذه النافذة
3 - اذهب الى الخلية المراد احتوأها على الاسماء فقط واكتب التالي:-
=Split_Name(اسم الخلية التي تحتوي على الاسماء والارقام المراد فصلها عن بعض)
4 - اذهب الى الخلية المراد احتواءها على الرقم واكتب التالي:-
=Split_Number(اسم الخلية التي تحتوي على الاسماء والارقام المراد فصلها عن بعض)
وبالتوفيق
قد تواجهنا احياناً وجود اعمدة تحتوي على الاسماء مع الارقام بنفس الاعمدة ونريد فصل الاسماء في عمود خاص بالاسماء وفصل الارقام الى عمود خاص بالارقام مثلاً :-
العمود A يحتوي على خلايا فيها الاسماء مع الارقام:- علي احمد سعيد عوض 73327789
ونريد فصل الخلية-الخلايا- التي تحتوي على الاسم الى العمود B ليصبح ناتج العمود :-علي احمد سعيد عوض
ونريد فصل الخلية-الخلايا- التي تحتوي على الرقم الى العمود C ليصبح ناتج العمود :-73327789
لعمل هذه الحلول نتبع التالي:-
اولاً:-
1 - افتح ملف الاكسل الذي يحتوي على البيانات ثم اذهب الى القائمة view
2 - واختار toolbars ومنه اختار visual basic
3 - تظهر لك هذه النافذه فيها عدد من الايقونات ، حاول تأشر بالفارة فوق تلك الايقونات ستجد واحدة منها باسم visual basic editor
4 - سوف تنفتح لك نافذة اخرى، اذهب الى القائمة insert واختر منها module
5 - لا تغلق هذه النافذه الان لانك سوف تكتب فيها بعض الاسطر
ثانياً:-
قم بنسخ الاسطر التالية الى النافذة الظاهرة
Public Function Split_Name(X As String) As String
Dim I As Integer
Dim Counter As Integer
Dim Data_Result As String
Dim Data_CHK As String
For I = 0 To 7
On Error GoTo E
Data_CHK = Split(X, " ")(I)
If Not IsNumeric(Data_CHK) Then
Select Case Counter
Case 0
Data_Result = Data_CHK
Case Else
Data_Result = Data_Result & " " & Data_CHK
End Select
Counter = Counter + 1
End If
Next I
E:
Split_Name = Data_Result
End Function
Public Function Split_Number(X As String) As String
Dim I As Integer
Dim Data_Result As String
Dim Data_CHK As String
For I = 0 To 7
On Error GoTo E
Data_CHK = Split(X, " ")(I)
If IsNumeric(Data_CHK) Then
Data_Result = Data_CHK
GoTo E
End If
Next I
E:
Split_Number = Data_Result
End Function
ثالثاً:-
1 - اذهب الى القائمة file واختر save
2 - قم باغلاق هذه النافذة
3 - اذهب الى الخلية المراد احتوأها على الاسماء فقط واكتب التالي:-
=Split_Name(اسم الخلية التي تحتوي على الاسماء والارقام المراد فصلها عن بعض)
4 - اذهب الى الخلية المراد احتواءها على الرقم واكتب التالي:-
=Split_Number(اسم الخلية التي تحتوي على الاسماء والارقام المراد فصلها عن بعض)
وبالتوفيق