SOME USEFUL VBA
learn how to use IsFileOpen or similar codes
---------------------------------------------------------
Sub MARK_NO_COPY()
'correction required program not ok
Dim ret
ret = IsWorkBookOpen("D:\6571 PETRO\hot case\inspection call 9-09-2019.xlsm")
If ret = True Then
    
Dim answer As VbMsgBoxResult
answer = MsgBox("insp call file is not opened", vbYesNo + vbQuestion + vbDefaultButton2, "may I open ?")
If answer = vbYes Then
'Workbooks.Open ("D:\6571 PETRO\hot case\inspection call 9-09-2019.xlsm")
Windows("inspection call 9-09-2019.xlsm").Activate
Range("B9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Copy Petrofac0001.xlsm").Activate
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Range("D4").Select
'Workbooks("inspection call 9-07-2019 (Repaired).xlsm").Close (True)
Else
MsgBox " file is closed"
Exit Sub
End If
Else
MsgBox " file NOT found"
End If
End Sub
'correction required program not ok
Dim ret
ret = IsWorkBookOpen("D:\6571 PETRO\hot case\inspection call 9-09-2019.xlsm")
If ret = True Then
Dim answer As VbMsgBoxResult
answer = MsgBox("insp call file is not opened", vbYesNo + vbQuestion + vbDefaultButton2, "may I open ?")
If answer = vbYes Then
'Workbooks.Open ("D:\6571 PETRO\hot case\inspection call 9-09-2019.xlsm")
Windows("inspection call 9-09-2019.xlsm").Activate
Range("B9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Copy Petrofac0001.xlsm").Activate
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Range("D4").Select
'Workbooks("inspection call 9-07-2019 (Repaired).xlsm").Close (True)
Else
MsgBox " file is closed"
Exit Sub
End If
Else
MsgBox " file NOT found"
End If
End Sub
--------------------------------------------
Function IsFileOpen(FileName As String)
    Dim ff As Long, ErrNo As Long
    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff
    Close ff
    ErrNo = Err
    On Error GoTo 0
    Select Case ErrNo
    Case 0:    IsFileOpen = False
    Case 70:   IsFileOpen = True
    Case Else: Error ErrNo
    End Select
End Function
    ---------------------------------------------------------------------------------------------------------------
some other related VBA, can use in your way-
Sub Macro11()
    Dim X As Integer
        For X = 1 To Range("A10000").End(xlUp).Row
        Cells(X, 1).Select
        Selection.Copy
        Sheets("275mt_Area_list (1)").Select
        Range("D2").Select
        ActiveSheet.Paste
        Application.CUTCOPYMODE = False
        Range("A6:BF16979").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Range("D1:L2"), Unique:=False
        Range("D6").Select
        ActiveCell.Select
        Range(Selection, Selection.End(xlDown)).Select
        Range("D6:L11076").Select
        Selection.Copy
        Sheets("Sheet2").Select
        Range("D1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        ActiveSheet.Paste
        ActiveWindow.SmallScroll Down:=-3
     Next
End Sub
    ------------------------------------------------------------------------------------------------
Sub Macro12()
   If Not IsFileOpen("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm") Then
   Dim answer As VbMsgBoxResult
answer = MsgBox("insp call file is not opened", vbYesNo + vbQuestion + vbDefaultButton2, "may I open ?")
If answer = vbYes Then
    Call macro50
 Else
 End Sub
    ----------------------------------------------------------------------------------------------------------------- 
Sub macro50()
Workbooks.Open ("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm")
 Windows("inspection call 9-09-2019.xlsm").Activate
    'Sheets("Workbooks.Open ("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm")").Select
    Range("B9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Copy Petrofac0001.xlsm").Activate
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("D4").Select
End Sub
    -------------------------------------------------------------------------------------------------------------------
Sub MARK_NO_COPY()
'correction required program not ok
Dim ret
ret = IsWorkBookOpen("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm")
If ret = True Then
   Dim answer As VbMsgBoxResult
answer = MsgBox("insp call file is not opened", vbYesNo + vbQuestion + vbDefaultButton2, "may I open ?")
If answer = vbYes Then
    'Workbooks.Open ("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm")
    Windows("inspection call 9-09-2019.xlsm").Activate
    Range("B9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Copy Petrofac0001.xlsm").Activate
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("D4").Select
'Workbooks("inspection call 9-07-2019 (Repaired).xlsm").Close (True)
Else
    MsgBox " file is closed"
Exit Sub
End If
Else
    MsgBox " file NOT found"
End If
End Sub
   ------------------------------------------------------------------------------------------------------------------
Sub Macro4()
'Delete range d4 to copied from mecro 11
Dim answer As VbMsgBoxResult
answer = MsgBox("Are U sure ?", vbYesNo + vbQuestion + vbDefaultButton2, "Clear cells")
If answer = vbYes Then
    Sheets("Sheet2").Select
    Range("D1").Select
    ActiveCell.Offset(2, 0).Range("A1:I1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Interior.Color = xlNone
    Selection.ClearContents
    'Call Macro9
         Range("A1:A1000").Select
         Selection.ClearContents
         Application.CUTCOPYMODE = False
    Range("D1").Select
Else
Exit Sub
End If
    MsgBox "DONE"
End Sub
    -------------------------------------------------------------------------------------------------------------------
Sub FIND_CATEGORY()
Application.ScreenUpdating = False
Dim xrowx As Long, xcolx As Long, tempA As Integer, tempB As Integer, tempC As Integer, condition As Integer, mystore As Long
condition = True
xrowx = 9
xcolx = 11
Sheets(115).Select
ActiveSheet.Cells(xrowx, xcolx).Select
Do While condition = True
    With Sheets(115)
        tempA = .Cells(xrowx, xcolx - 4).Value
        tempB = .Cells(xrowx, xcolx - 5).Value
        tempC = .Cells(xrowx, xcolx - 1).Value
        mystore = ((tempA / tempB) / (tempC / 1000))
    If mystore <= 30 Then
        ActiveCell.Value = "Light"
        ActiveCell.Interior.Color = 65535
    ElseIf mystore <= 60 Then
        ActiveCell.Value = "Medium"
        ActiveCell.Interior.ThemeColor = xlThemeColorAccent5
    Else
        ActiveCell.Value = "Heavy"
        ActiveCell.Interior.Color = 49407
    End If
        xrowx = xrowx + 1
        .Cells(xrowx, xcolx).Select
If .Cells(xrowx, xcolx - 1) = 0 Then
Range("K9").Select
Exit Do
End If
    End With
Loop
Application.ScreenUpdating = True
End Sub
    ------------------------------------------------------------------------------------------------------------------
Sub findnreplace()
Worksheets("Sheet1").Range("A2:A35").Select
Selection.Replace what:=Cells(i, 3).Value, replacement:=Cells(i, 4).Value, _
lookat:=xlPart, searchorder:=xlByRows, MatchCase:=False
Next
Worksheets("Sheet1").Cells(1, 1).Select
End Sub
   -------------------------------------------------------------------------------------------------------------------------
Sub FileExists()
Dim fso As Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists("D:\6571 PETROFAC\hot case\inspection call 9-09-2019.xlsm") = True Then
MsgBox "The file is exists."
Else
MsgBox "The file isn't exists."
End If
End Sub
   ------------------------------------------------------------------------------------------------------------------
Sub PauseAmacroFor3sec()
Application.Wait (Now + TimeValue("0:00:05"))
 Application.SendKeys "{ENTER}"
End Sub

No comments:
Post a Comment
Please do not enter any spam link in the comment box