RowsCount



  • Rows.Count
    di Gerry (utente non iscritto) data: 14/02/2014 09:46:30

    Salve ragazzi ho un problema da risolvere, il codice sotto allegato verifica quante fatture sono state salvate ed assega il nuovo numero alla fattura. quello che devo fare e di modificare il Cells(Rows.Count, 7) devo dirle di iniziare a contare dalla
    cella G30 in poi, il Count, 7 mi determina la colonna G, ma non riesco a determinare la cella 30 come posso fare?
     
    xNumeroFattura = Sheets("Fatturazione").Cells(Rows.Count, 7).End(xlUp).Row



  • di Grograman (utente non iscritto) data: 14/02/2014 09:57:23


     
    if xNumeroFattura > 30 then xNumeroFattura = xNumeroFattura  -30



  • di patel data: 14/02/2014 10:00:28

    allega un file di esempio spiegando cosa vuoi ottenere, allegare una sola riga di codice serve a poco





  • di Gerry (utente non iscritto) data: 14/02/2014 18:54:50

    Allego il codice VBA, e cercherò di spiegare la modifica da apportare.
    La riga di codice xNumeroFattura = Sheets("Fatturazione").Cells(Rows.Count, 1).End(xlUp).Row
    Controlla la colonna A2 che funge da archivio per le fatture, dalla cella A2 a scendere come trova un valore inserito incrementa di uno ed assega il nuovo numero alla fattura esempio:
    Trova 1 nella cella A2 il nuovo numero della fattura sarà 2.
    La modifica da apportare è far controllare la colonna BW78 a scendere per assegnare il nuovo numero alla fattura invece della colonna A2.

     
    Private Sub Numero_Fattura()
    Dim xNumeroFattura
    ActiveSheet.Unprotect
    Sheets("Fatturazione").Range("D13:H13,M13:M16,C19:K35,D39:F43,J42:M44,C46:M49").ClearContents
    xNumeroFattura = Sheets("Fatturazione").Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Fatturazione").Range("M3").Value = xNumeroFattura
    Sheets("Fatturazione").Range("D13").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub
    



  • di Gerry (utente non iscritto) data: 14/02/2014 21:38:46

    salve c'è qualcuno che mi può aiutare a risolvere il problema della numerazione delle fatture
    Grazie



  • di Raffaele_53 (utente non iscritto) data: 14/02/2014 22:18:56

    Forse non ho capito bene.
    Nella colonna BW partendo dalla riga 87 hai nelle celle a seguire il numero delle fatture.
    Se calcolo quante righe ci sono scritte in BW con

    Uriga = Sheets("Fatturazione").Range("BW" & Rows.Count).End(xlUp).Row
    xNumeroFattura = Sheets("Fatturazione").Range("BW" & Uriga) + 1

    Naturalmente il + 1 significa che la prossima fattura avrà il numero seguente.

    Ps. Se invece i numeri non sono a seguire si può usare il MAX per sapere quale sia il numero più alto.
    xNumeroFattura = Application.WorksheetFunction.Max(Range("BW87:BW" & Uriga))

    Pps. Secondo me dovresti trovarti una cella libera ex AA1 e capovolgere l'ordine della macro.
    Sheets("Fatturazione").Range("M3").Value = Sheets("Fatturazione").Range("AA1").Value +1
    Qui decidi di stampare/salvare oppure annullare
    Solo a condizione di salvare, bisogna aumentare
    Sheets("Fatturazione").Range("AA1").Value = Sheets("Fatturazione").Range("AA1").Value +1
    Qui cancellare le celle della fattura



  • di Gerry (utente non iscritto) data: 14/02/2014 23:06:00

    Grazie Raffaele_53 per aver risposto, il vero problema non è la numerazione della fattura ma mettere un test e non generare un nuovo numero della fattura se la precedente non è stata archiviata, mi puoi dare una dritta



  • di Gerry (utente non iscritto) data: 14/02/2014 23:30:41

    ho letto la parte del capovolgere lordine della macro, il test per generare un nuovo numero potrebbe essere quello di archiviare la fattura: il numero nella cella BW78, la data, Bx78 Il numero, By78 il cliente, se la fattura è archiviata si genera un nuovo numero. solo che non riesco a realizzare la macro, mi potresti allegare qualche esempio! grazie per l'aiuto



  • di Raffaele_53 (utente non iscritto) data: 15/02/2014 00:25:16

    Dagli un'occhiata.
    Casomai sposta un files con due tre righe di dati

    Ps personalmente farei un foglio fattura e foglio archivio
     
    Option Explicit
    
    Private Sub Numero_Fattura()
    Dim ws1 As Worksheet: Set ws1 = Sheets("Fatturazione")
    'Dim ws2 As Worksheet: Set ws2 = Sheets("Archivio")'se lo desideri fare
    Dim Uriga As Long, Risposta As Integer
    'ActiveSheet.Unprotect
    Uriga = ws1.Range("BW" & Rows.Count).End(xlUp).Row ' ricerco l'ultima riga scritta
    ws1.Range("M3").Value = ws1.Range("BW" & Uriga) + 1 ' Trovo l'ultima fattura e aggiungo +1 e la scrivo in M3
    
        'Meglio fare delle verifiche prima sui dati importanti ex
             If ws1.Range("D13") = "" Then MsgBox "Manca il cognome"
             If ws1.Range("E13") = "" Then MsgBox "Manca la data"
             If ws1.Range("F13") = "" Then MsgBox "Manca l'indirizzo"
             If ws1.Range("G13") = "" Then MsgBox "Manca ecc ecc"
             If ws1.Range("H13") = "" Then MsgBox "Manca ecc ecc"
    
    Risposta = MsgBox(prompt:="Devo archiviare la fattura?", Buttons:=vbYesNo)
          If Risposta = vbYes Then
             'MsgBox "hai premuto si" ' archivio
                ws1.Range("BW" & Uriga + 1) = ws1.Range("M3")
                ws1.Range("D13:H13").Copy
                ws1.Range("BX" & Uriga + 1).PasteSpecial
                'continua Tu con il copiare i dati, alla fine svuoti la fattura
                'Sheets("Fatturazione").Range("D13:H13,M13:M16,C19:K35,D39:F43,J42:M44,C46:M49").ClearContents
                'Sheets("Fatturazione").Range("M13").ClearContents
          Else
              'MsgBox "hai premuto no" 'esco senza fare nulla
              ' se vuoi puoi cancellare tutti i dati dlla fattura
              'Sheets("Fatturazione").Range("D13:H13,M13:M16,C19:K35,D39:F43,J42:M44,C46:M49").ClearContents
          End If
    
    Sheets("Fatturazione").Range("D13").Select
    'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Set ws1 = Nothing
    'Set ws2 = Nothing
    End Sub



  • di Vecchio Frac data: 15/02/2014 10:44:00

    @Raffaele_53, per cortesia, contattami, grazie:
    staff@€xcelvba.it





  • di Raffaele_53 (utente non iscritto) data: 15/02/2014 11:06:25

    Ciao VF
    Ti ho contattato su staff@excelvba.it
    Perchè il simbolo Euro non lo accettava



  • di Vecchio Frac data: 15/02/2014 11:19:06

    Scusa, evidentemente ho premuto Alt-Gr per il simbolo @ e naturalmente andando avanti con la "e" di "excel.vba" è saltato fuori il simbolo € dell'euro ^_^
    Naturalmente era "staff@excelvba.it".





  • di Gerry (utente non iscritto) data: 15/02/2014 19:11:15

    Cia Raffaele_53 ho provato a far funzionare il codice ma mi dà errore, forse perche ho apportato delle modifiche al file spostando le celle, comunque allego la fattura prova a dare un occhiata. Grazie per l'aiuto



  • di Raffaele_53 (utente non iscritto) data: 15/02/2014 21:19:17

    Chiedo scusa se la risposta non è chiara.
    Nell'allegato hai diverse celle unite (non è una bella cosa,ma si potrebbe fare)

    Ora devi archiviare in celle differenti tutte le celle della fattura (però sulla stessa riga della fattura)
    Premesso che non ho capito a cosa serve il foglio archivio?

    Da quello che vedo desideri copiare le medesime celle di FATTURAZIONE nelle riga successive in base alla fattura?
    (se non erro dalla colonna BW78 in poi) ex BW78 = Fattura1

    Domanda?
    Data Fatt. Num. Fatt. Cliente Indirizzo Cap Città Prov Tel Fax P.IVA Cod. F.
    Mi sta bene, però
    Imponibile Iva Totale Data1 Importo1 Data2 Importo2 Data3 Importo3 Data4 Importo4 Data5 Importo5
    Cosa dovrei calcolare e scrivere in queste celle?

    Ps. All'elenco in fattura (oltre a non capire le celle E26:E29), che và dalla riga 30 alla riga 57 (non capisco cosa devi archiviare, oltre hai dati dell'utente, cosa devi archiviare? I dati presenti dalla colonna C:AF ?)
    Ci fossero 27 righe per 8 scritte in tutta la riga, sarebbero oltre 300 (la versione Tua Excel-2003 non sarebbe in grado di farlo)

    Puoi spiegarTi meglio cosa desideri? Ricorda che lo spostamento di una riga/colonna e la macro non funziona.



  • di Gerry (utente non iscritto) data: 15/02/2014 22:12:16

    Hai ragione ho incasinato tutto, comunque quello che devo salvare sono le seguenti righe:
    Data Fatt.
    Num. Fatt.
    Cliente
    Imponibile
    Iva
    Totale
    Possiamo salvare anche in archivio dalla cella CS6, perche nelle celle prima devo salvare altri dati
    Imponibile = Fatturazione AC63
    Iva = Fattutrazione AC65
    Tolate= Fatturazione AC67
    Comunque allego il file con le celle da salvare in archivio
    Chierdo scusa per il casino



  • di Raffaele_53 (utente non iscritto) data: 16/02/2014 12:20:39

    Fatto con 2007 e salvato come 2003
    Se non erro, ho fatto quello che desideri nel foglio Archivio
    Devi controllare nella macro le celle da azzerare prima/dopo aver inserito la fattura.
    Intendo dire che tramite convalida Dati--> inserisci i dati del cliente, pertanto la cella R16 puoi azzerarla, automaticamente spariscono i dati del cliente.
    Anche la cella F18, anche E30, E31, E32 ecc ecc
    Mà non puoi azzerare le celle dove ci sono formule
    Allegato Raf-Fattura



  • di Gerry (utente non iscritto) data: 16/02/2014 15:34:34

    ciao Raffaele_53 ho provato il file allegato, ho ancora dei dubbi il codice da eseguire per archiviare e quello all'interno del modulo1?
    Per generare il nuovo numero della fattura il codice da eseguire e Sub Nuova_Fattura all'interno del foglio11?
    Comunque da mè da errore sia il primo codice che il secondo, potresti dare un occhiata! grazie ancora



  • di Raffaele_53 (utente non iscritto) data: 16/02/2014 21:26:44

    >>>Comunque da mè da errore sia il primo codice che il secondo
    Ho fatto solo un codice (non due) scritto in Modulo1 = Private Sub Numero_Fattura()

    A me non da errore, specifica quale sia (forse dovuto alla Tua versione d'Excel, ma non credo)
    Ps. Gli altri codici nel foglio "non li ho esaminati"



  • di Gerry (utente non iscritto) data: 16/02/2014 21:49:53

    Scusa Raffaele_53 ho riscaricato il file e adesso non da errore, però c'è un problema, quando eseguo il codice la fattura viene
    archiviata, però non viene assegato il nuovo numero, se rieseguo il codice viene assegnato il nuovo numero e chiesto di archiviare la fattura, invece il codice dovrebbe funzionare così:
    1° Pulsante archiviare la fattura
    2° Pulsante nuova Fattura cancella tutto ed assegnare il nuovo numero
    Ti chiedo scusa però e quello che dovrei fare. Grazie ancora e spero che sia risolvibile!



  • di Raffaele_53 (utente non iscritto) data: 16/02/2014 22:02:36

    Degli altri codici non saprei.
    In modulo1, c'è un codice che fà il tutto (crea un bottone)
    Naturale che in foglio "archivio" venga eleminato le celle CS6:CX7



  • di Raffaele_53 (utente non iscritto) data: 16/02/2014 22:07:08

    Premesso, che non ho visto bottoni nel Tuo allegato



  • di Gerry (utente non iscritto) data: 16/02/2014 22:15:42

    Proverò a sistemare un pulsante e eseguire il codice poi ti farò sapere grazie



  • di Gerry (utente non iscritto) data: 16/02/2014 22:35:27

    ciao Raffaele_53 ho inserito il pulsante ed eseguo il codice, ma il problema e quello che avevo riscontrato, provo a spiegarmi.
    esempio si parte con la fattura n° 1 archivio la fattura e va bene il problema sta che dopo che archivio la fattura non viene generato il n° 2 per la nuova fattura, però se clikko il pulsante per la seconda volta il numero viene assegnato e chiesto di essere archiviato. Mentre il tutto dovrebbe funzionare nel seguente modo:
    1 Pulsante per archiviare la fattura, il codice deve archiviare la fattura solo se il numero, la data, il cliente, e i prodotti sono inseriti e in archivio non esiste già una fattura memorizzata con lo stesso numero.
    2 Pulsante nuova fattura a questo punto si controlla l'archivio se la fattura 1 e stata archiviata si crea il nuovo numero della fattura. e si cancellano i campi compilati, il numero viene inserito il nuovo numero, i campi data, cliente e prodotti vengono cancellati e predisposti per il nuovo inserimento.
    il problema è il codice i pulsanti posso crearli io solo che non riesco a creare il codice.
    Forse il codice realizzato da tè già fa questo, deve essere solo modificato.
    Ti prego di scusarmi forse all'inizio non sono stato molto chiaro a spiegare cosa volevo fare



  • di raffaele_53 (utente non iscritto) data: 16/02/2014 23:55:33

    >>>Mentre il tutto dovrebbe funzionare nel seguente modo: .....1 Pulsante ....2 Pulsante
    >>>Pulsanti non ho visto

    Forse ancora mi spiego male
    Se non esiste un cliente in R16, la macro non fa nulla

    Come detto devi azzerare determinate celle nella macro

    Ps delle altre macro Tue, non le ho guardate.
    Pps. adesso mi spieghi i problemi sulla macro mia?



  • di Gerry (utente non iscritto) data: 17/02/2014 19:26:31

    ciao raffaele_53 ho controllato meglio la macro che ai realizzato, non avevo capito che il test era sul cliente, basta azzerare la cella e tutto funziona Grazie ancora e scusa, adesso cerchero di sistemare le celle che devo azzerare.



  • di Raffaele_53 data: 20/02/2014 17:31:54

    ho problemi di ADSL
    Rivedo il tutto appena possibile