Aggiungere Funzione



  • Aggiungere Funzione
    di Gaetano (utente non iscritto) data: 19/10/2013 15:00:29

    Ciao a tutti,
    ho questa macro che registra dei dati, vorrei aggiungere una funzione che mi estrae il foglio in questione e un altro foglio in un file sempre in excel con un nome particolare. Qualcuno può aiutarmi?
    Grazie e saluti.
     
    Option Explicit
    
    Sub Registra()
    Dim LR As Integer, MyRange As Range, LO As Integer, Nr As Byte, Risp As Byte
    Risp = MsgBox("Sei sicuro di voler registrare l'ordine n. " & [b3] & " del Cliente " & [a2] & "?", Buttons:=vbYesNo)
    If Risp = vbYes Then
    LR = [a60].End(xlUp).Row
    If LR < 10 Then LR = 60
    Set MyRange = Range("a10:h" & LR)
    Nr = MyRange.Rows.Count - 1 'Numero di Item ordinati
    LO = Foglio3.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    ' Faccio dei controlli preliminari
    
    ' Prima di registrare l'ordine nuovo mi accerto che non era già stato registrato in precedenza
    If Range("b3").Font.Bold = True Then
    MsgBox "Commissione già regitrata. Impossibile procedere!!", vbCritical
    Exit Sub
    End If
    ' Poi verifico che i campi che mi servono siano stati correttamente completati
    If [a10] = "" Or [g2] = "" Or [b3] = "" Or [a2] = "" Or [b65] = "" Then
    MsgBox " Ci sono campi obbligatori che sono vuoti. Completa prima di registrare!", vbCritical
    Exit Sub
    End If
    
    ' se supero il controllo posso registrare la nuova commissione
    With Foglio3
    .Range("a" & LO & ":a" & LO + Nr).Value = [g2] ' CASA Mandante
    .Range("b" & LO & ":b" & LO + Nr).Value = [b3]  'N. Commissione
    .Range("c" & LO & ":c" & LO + Nr).Value = [a2]  'Ragione Sociale Cliente
    .Range("d" & LO & ":d" & LO + Nr).Value = [b65]  'Data Ordine
    .Range("d" & LO & ":d" & LO + Nr).NumberFormat = "dd/mm/yy" 'Formatto la data
    .Range("e" & LO & ":l" & LO + Nr).Value = MyRange.Value 'il corpo dell'Ordine
    End With
    MsgBox "Ordine N. " & [b3] & " del Cliente : " & [a2] & ". Registrato!!", vbInformation
    Range("b3").Font.Bold = True
    Else
    MsgBox "Registrazione ANNULLATA", vbExclamation
    End If
    
    End Sub


  • Estrazione Fogli
    di Gaetano (utente non iscritto) data: 19/10/2013 21:25:32

    Ciao ragazzi,
    ho trovato questo codice, funziona, ma mi serve estrarre anche il secondo foglio del file, qualcuno sa c0ome modificarlo?
    Grazie e saluti.
     
    Dim p As String
    p = ActiveWorkbook.Path
    ActiveSheet.Copy 'crea una nuova cartella
    ActiveWorkbook.SaveAs p & "Cartel2" '...o il nome che preferisci...
    ActiveWorkbook.Close