Condividi:        

CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 12/08/14 17:24

Salve a tutti
Mi chiamo Michele.
sto facendo la lotta con un file che piano piano migliora anche grazie a delle indicazioni prese su questo forum.
Ho pochissima confidenza con vba excel ma tanta forza di volontà. Sto cercando di trovare una macro che si aziona con un pulsantino ( e questo processo ormai non mi è più oscuro).. pulsantino da mettere al fondo del foglio del file COMPENSIRIVENDITORI
una volta che compilo il foglio nel file COMPENSIRIVENDITORI (insieme di fogli che fanno da schede riepilogative di servizi offerti a ogni rivenditore) appunto e decido si chiuderlo schiacciando con questo pulsante mi dovrebbe riportare la cella "totale fattura" e "data" nella colonna totale fattura appunto del file RAGIONERIA RIVENDITORI nella colonna delle date scrittura fattura

solo che la vorrei me la portasse e la scrivesse ovviamente nella prima riga vuota ( non riempita da altre fatture precedenti)
ho provato a usare la funziona cerca verticale in vari modi per trovare e farmi restituire il primo valore vuoto ma niente.
insomma l'intento è chiaro
compilare il foglio x ad esempio del primo file.. chiuderlo col pulsante.. e riportare due informazioni nell'altro file nel primo foglio

http://www.filedropper.com/compensirive ... beta1111_1
http://www.filedropper.com/ragioneria-rivenditori

help illuminatemi!
ringrazio in anticipo per la collaborazione
appena possibile vorrei allegare i due file con le strutture
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Sponsor
 

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 12/08/14 21:56

Ciao michele001, benvenuto nel forum.
C' e' un motivo per aver usato un font altezza 100 punti, dovendo cosi' rimpicciolire la visualizzazione del foglio e non riuscire a distinguere le coordinate delle celle, o i pulsanto dei menu a discesa?

Immagino che per "Totale fattura" intendi la cella F50 dei fogli PCx sul file CompensiRivenditori, e per "Data" intendi la cella A17; e vanno riportati sul foglio "Elenco fatt. clienti fornitori" del file RAGIONERIA-RIVENDITORI, colonne C ed E rispettivamente.
Ti dovrebbe aiutare una macro come questa:
Codice: Seleziona tutto
Sub copydatas()
Dim Dest As Worksheet, NextL As Long
'
Set Dest = Workbooks("byMICHELE001-2_RAGIONERIA-RIVENDITORI_B40812.xlsm").Sheets("Elenco fatt. clienti fornitori")  '<<< !
NextL = Dest.Cells(Rows.Count, "C").End(xlUp).Row + 1
Dest.Cells(NextL, 3).Value = Range("F50").Value
Dest.Cells(NextL, 5).Value = Range("A17").Value
End Sub


Personalizza la riga marcata "<<<" col vero nome file/foglio di destinazione.
Associala al pulsante che inserisci in coda ai fogli, copiera' sul file /foglio di destinazione il contenuto di F50 e A17 del foglio "attivo"; il file di destinazione deve essere gia' aperto.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 13/08/14 10:28

anthony 47 grazie per il benvenuto
si si ci sta il motivo per aver fatto entrambe quelle scelte.
scusa se ti faccio uscire pazzo con la visualizzazione
appena posso provo la tua macro e vedo come va?
quindi con dest. cells (nextl,3) e dest.cells(nextl,5) praticamente hai risolto il mio problema?
copierà nella prima riga libera del secondo file Ragioneria?
Come mi sento imbranato! cioè non capisco la soluzione neanche vedendola!
dichiaro le variabili worksheet e nextl
poi setto la destinazione (il secondo file appunto)
poi
NextL = Dest.Cells(Rows.Count, "C").End(xlUp).Row + 1
rows.count end (xlUp) mi da il riferimento della prima cella libera nella colonna del secondo file giusto?

che stile!
grazie
aggiornerò il post appena posso!
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 13/08/14 10:54

adoooo sembra fungere alla grande!
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 13/08/14 17:22

di nuovo qui per un consiglio sempre per migliorare le funzioni del file
finito questo vorrei sapere se esiste un modo per mandare una mail con un corpo messaggio fisso (ad esempio un avviso di fattura scaduta)ai contatti che hanno fatto scadere i loro pagamenti
sbaglio o dovrei servirmi di
microsoft outlook object library 14?
purtroppo fra i componenti aggiuntivi nonostante lo aggiunga non lo trovo
e come prima ringrazio in anticipo per la vostra cortesia
e chiedo se per questo devo aprire un altro topic o modificare il titolo di questo
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 13/08/14 18:36

Nel forum ci sono numerose discussioni per l' invio di email; ad esempio puoi partire da questi link:
viewtopic.php?t=93621#p535678
viewtopic.php?f=26&t=85263&start=20#p485473
viewtopic.php?t=101351

E se non risolvi con il codice e le informazioni che trovi allora la cosa migliore e' che apri una nuova discussione, dove pero' spiegherai che cosa hai gia' provato a fare e dove ti sei arenato...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 15/08/14 16:17

anthony47 funge benissimo il codice da te creato.
provato e sperimentato. ora esiste un modo per rendere il codice adatto a mandare un avviso a un solo contatto per volta invece che a un range
magari per via di una leggera personalizzazione per ogni contatto.. da aggiungere a mano se mai;
l'intenzione sarebbe quella di mandare il sollecito anche uno alla volta senza dover cancellare dai destinatari quelli che non mi servono ogni volta
ultimo chiarimento. è possibile dato il mio primo file che il nome dei vari fogli sia personalizzabile e non per forza pc1 pc2 pc3 ecc. e far funzionare il contatore di fogli esistente ugualmente sotto?
una volta che lo avvio mi cambia il nome di tutti i file ricontandoli.
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 17/08/14 15:19

Puoi indicare quale codice hai provato e la discussione da cui sei partito?

Quanto a inviare una mail per volta, in genere e' piu' semplice che inviarne un blocco...
Anche prendendo lo spunto dalla modalita' con cui vorresti procedere (scelta dei destinatari, personalizzazione dl messaggio), il mio suggerimento e' che usi Excel per avere una prima indicazione di fatture scadute o in scadenza; poi tu compili una colonna di servizio con 1 /0 (o altra cosa a piacere) per indicare Mail Si /mail No e un' altra colonna con il messaggio personalizzato che vuoi inviare, magari combinando colonne di dati presenti nel foglio con una parte personalizzata che inserisci in una ulteriore colonna.
A questo punto adatti al nuovo layout dati la macro che invia una dopo l' altra le N email, e la lanci quando ne hai bisogno.

Quanto al nome dei fogli, la macro che ti avevo dato lavora sul "foglio attivo", che si chiami PC1 o PIPPO non fa differenza.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 17/08/14 16:35

dunque sono partito da questo codice che manda mail a un gruppo di contatti. adattato al mio caso funziona benissimo


Codice: Seleziona tutto
Sub Invioemail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim EmailAddr As String
    Dim Subj As String
    Dim BodyText As String                      'FIN QUI E' SONO "DICHIARAZIONI"
    '  (a)
    Set OutApp = CreateObject("Outlook.Application")
    ''compilazione di un testo standard di accompagnamento   'LA VARIABIE BDT VIENE COMPILATA CON UN TESTO STANDARD
    BDT = "Ti invio il risultato Portfolio per l'orientamento."
    BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
    BDT = BDT & "Rea"
    ''  (b)
    Nominat = Sheets("Scheda").Range("C5").Value       'E' IL NOME DESTINATARIO, A TE NON SERVE
    OutFile = "C:\ESITI\" & Nominat & "_ScrSh.jpg"     'NOME DEL FILE ALLEGATO; PER TE SARA' FISSO E NON VARIABILE, es "C:\Document and Settings\pippo\documenti\allegato.doc"
    EmailAddr = Range("h5").Value      'INDIRIZZO EMAIL, PRESO DA h5 DEL FOGLIO CORRENTE
    Subj = "Invio risultati questionario"    'OGGETTO DELLA MAIL
    '
    Set OutMail = OutApp.CreateItem(0)     'DA QUI SI CREA E INVIA LA MAIL
    With OutMail
    .To = EmailAddr
    .CC = ""
    .BCC = ""
    .Subject = Subj
    .Attachments.Add OutFile
    .Body = BDT
    .Display 'or use .send
    '.send
    End With
    '  (c)
    Set OutMail = Nothing
    '
    '  (d)
    Set OutApp = Nothing

        Application.Wait (Now + TimeValue("0:00:04"))
        Application.SendKeys "%a"
        Application.Wait (Now + TimeValue("0:00:04"))
    '
    'Rename Image files
    'Name "C:\ESITI\" & Nominat & "_ScrSh.jpg" As "C:\ESITITX\ " & Nominat & "_ScrSh.jpg"

    End Sub




la domanda è quindi.. io ho la mia colonna in cui capisco se la fattura è scaduta o no.
Poi non mi è chiara la soluzione proposta mail si mail no .. trascurando per il momento la personalizzazione che come detto posso far a mano oppure come da te propostosi può ottenere combinando con una parte personalizzata inserita nella mia colonna note.
Può aiutarmi a capire come posso scegliere il destinatario uno per volta?
posso da una colonna nuova far uscire le mail solo di chi ha la fattura scaduta. e il suo codice può aiutarmi a prendere questo range di rivenditori che hanno fatto scadere la fattura.
la domanda precisa è : e se dovessi mandarla a uno solo di questi? Come deve cambiare il codice?


a proposito del nome dei fogli la macro data sul forum funziona sul foglio attivo e quindi no problem.. mentre la mia che gira sotto che parte con il pulsante "contatore" riconta tutte le schede cambiando il nome dei fogli sotto.. mi suggerisce come cambiare il codice per mantenere la funzione di contatore fogli senza cambiare il nome del foglio?
sarebbe il modulo2

Codice: Seleziona tutto
Sub contatore()
For a = 3 To Worksheets.Count
Worksheets(a).Select
Range("A14").Select
ActiveCell.FormulaR1C1 = a
ActiveSheet.Name = "PC " & a
Next
End Sub


a proposito avevo trovato questa soluzione in giro per internet
Codice: Seleziona tutto
Sub CambiaNomeFoglio()
Dim Sh As Object
Dim NomeSh As String

   Sh = ThisComponent.getSheets(1, 100)
   
   Rem Assegno alla variabile NomeSh il valore della cella E10 del Foglio Attivo
   NomeSh = ThisComponent.getCurrentController().getActiveSheet().getCellByPosition(5, 10).String
   
    Rem controlliamo se la cella A1 è compilata e se il nome non è già stato usato
    If NomeSh = "" Then MsgBox "Manca il nome del foglio": Exit Sub
      If Not Sh.hasByName(NomeSh) Then
        ThisComponent.getCurrentController().getActiveSheet().setName (NomeSh)
   Else
      MsgBox "Nome Foglio già presente"
   End If

End Sub


la seconda parte del controllo posso anche trascurarla.. ma la prima parte non funge mi da errore di runtime per mancanza oggetto e con il debug mi segna la riga in figura[img]
Immagine
host image
[/img]
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 17/08/14 19:25

Il codice della Sub InvioEmail consente l' invio di 1 (una sola) mail all' indirizzo presente in H5 del foglio attivo. Sostituendo EmailAddr = Range("h5").Value con EmailAddr = ActiveCell.Value potrai inviare una email all' indirizzo della cella selezionata.
Il testo della mail, nella macro e' compilato nella variabile BDT, con una frase fissa; puoi invece compilare BDT con una cella della riga selezionata usando, al posto delle verie BDT = etc etc, l' istruzione
BDT = Cells(ActiveCell.Row, "H").Value
Questa usa la colonna H, e immagino si capisca come personalizzarla per usare un' altra colonna.

Per una personalizzazione piu' dettagliata bisognerebbe conoscere il layout dei tuoi dati.

Continuo a non capire il bisogno di cambiare il nome del foglio... Se la tua Sub contatore() al momento seleziona correttamente la sequenza di cui vuoi trasferire la sintesi sul file di riepilogo, allora ti bastera' modificarla in
Codice: Seleziona tutto
Sub contatore()
For a = 3 To Worksheets.Count
    Worksheets(a).Select
    Call copydatas
Next
End Sub

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 18/08/14 17:26

Allora anthony47 ho provato le tue ultime indicazioni.. sono riuscito a creare due pulsanti.
il primo per mandare mail a tutti i clienti con fatture scadute" e il secondo uno per uno con una personalizzazione del conto in sospeso della data e di altri messaggi specifici.. quindi missione compiuta in questo

sul cambiare i nomi ai fogli: ti spiego perchè mi serve poterli contare ma avere un contatore che non mi cambi il nome del foglio stesso una volta avviato.
Capita a volte che debba iniziare a scrivere una scheda ma non debba "chiuderla" subito col pulsante che mi hai suggerito all'inizio del post che trasferisce i valori di importo e data nel riepilogo .. . a volte passano anche due settimane.. fino alla data di consegna dei miei prodotti il totale quindi può cambiare.
vorrei che queste schede in sospeso fossero segnalate.. la perfezione sarebbe avere l'etichetta dove sta scritto il nome del foglio personalizzabile per quelle "non chiuse". ad esempio con un colore diverso o con una scritta diversa ... insomma diversa dal semplice numero che le indica adesso di modo che possa visualizzare queste schede "sospese" a colpo d'occhio senza andarle a cercare
spero di essermi spiegato meglio
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 19/08/14 22:08

Non ho capito se hai identificato il momento e la logica con cui marcare un foglio "In Sospeso"
Con una certa semplificazione potresti impostare il colore della linguetta del foglio su Rosso ogni volta che il foglio subisce un cambiamento, e colorarla di verde ogni volta che "accodi" i dati sul file RAGIONERIA-RIVENDITORI.
Per questo inserisci nel modulo "ThisWorkbook" (oppure "Questa_Cartella_di_Lavoro") questo codice, che colora di rosso:
Codice: Seleziona tutto
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Left(ActiveSheet.Name, 2) = "PC" Then ActiveSheet.Tab.Color = RGB(255, 0, 0)   'Colora in Rosso
End Sub


mentre in testa a copydatas aggiungi la riga che colora di verde:
Codice: Seleziona tutto
Sub copydatas()
ActiveSheet.Tab.Color = RGB(0, 255, 0)    'Colora in verde     '<<< AGGIUNGERE
Dim Dest As Worksheet, NextL As Long

Il colore rosso viene applicato ai fogli il cui nome comincia per "PC" quando su di essi si applica qualsiasi modifica.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 19/08/14 22:49

provo
niente
mi da due situazioni di errore.. la prima
Immagine

sarà dovuta al ripetersi del rigo di testa

poi ho provato anche con quest'altra soluzione.. non dando più errore

Immagine
host immagini

ma sembra non fungere.. ovviamente ho cambiato anche il codice come hai detto in copydata
cosa sbaglio?

mi correggo il verde funziona.. quando chiudo la scheda l'etichetta diventa verde
è il rosso delle "sospese" a non funzionare



ulteriore prova.. ho spostato le tue righe in questa cartella di lavoro sopra le mie per la rinomina del foglio con il nome della cella
e si colora in rosso! wow splendido.. soluzione semplice ma efficacissima
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 20/08/14 22:09

Ciao Anthony purtroppo oggi con il collaudo del file mi sono accorto che purtroppo siamo solo vicini alla soluzione. Una volta che ho avviato diciamo così la seconda volta il contatore cambierà inesorabilmente in rosso le schede.. basta quindi che uso nel file il contatore per 2 volte che il tanto agognato colore verde che indica il foglio "chiuso" diventa rosso.. vanificando l'effetto temporaneo del colpo d'occhio...
Si può ovviare al problema rendendo i foglio "chiusi" permanentemente verdi e quelli sospesi rossi?
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 21/08/14 02:46

Te l' avevo detto, che "qualsiasi modifica" avrebbe messo il colore rosso sull' etichetta; visto che cosi' non va dovresti allora dire quali sono le modifiche da considerare e quali quelle da ignorare. E che cosa intendi per "foglio chiuso"?
Comunque se vuoi ignorare le modifiche fatte in A14 allora puoi modificare l' istruzione che ti avevo dato in
Codice: Seleziona tutto
If Left(ActiveSheet.Name, 2) = "PC" And Target.Address <> "$A$14" Then ActiveSheet.Tab.Color = RGB(255, 0, 0)   'Colora in Rosso

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 22/08/14 16:49

e be.. come ho fatto adesso. ho disattivato la riga di codice del contatore che rinomina i fogli pc. ma conta solo i fogli e rende il conto visibile in una cella. in questo modo i fogli escono normalmente grigi e se verranno "chiusi" (per chiusi intendo completati e finiti cliccando col pulsante legato e copydatas) diventeranno verdi.
quelli sospesi rimarrano grigi.
ora sto lavorando a una maschera che si lega a un pulsante che rinomini il foglio col contenuto di 3 celle
come faccio a dare il nome al foglio combinando il contenuto di 3 celle?
ho provato con la solita & ma mi da errore.
ponendo ad esempio che il foglio debba prendere il nome dalla cella a1 in cui sta la data e dalla cella b1 in cui il contatore va a mettere il numero della scheda e dalla cella c1 in cui metto nome del rivenditore?

grazie per la pazienza
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi Anthony47 » 23/08/14 19:20

Sinceramente non ho capito se il problema del Rosso /Verde e' risolto o meno.
Quanto a rinominare il foglio anche qui non ne ho capito il bisogno; comunque il nome foglio e' una stringa che puoi compilare concatenando piu' contenuti di celle, es
Codice: Seleziona tutto
NomeF=Range("A1").Value & "_" & Range("A2").Value & "_" & Format(Range("A3").Value, "yy-mm-dd")
Nell' ipotesi ho supposto che A3 contenga una data.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE

Postdi MICHELE001 » 27/08/14 17:14

ok! sistemato in base alle mie esigenze al meglio.. rinominare il foglio mi serve per tenere sotto occhio delle schede in particolare.. ora va molto meglio.. qualche rifinitura e questa coppia di file andrà proprio bene

grazie anthony!
MICHELE001
Utente Junior
 
Post: 11
Iscritto il: 13/07/14 17:24


Torna a Applicazioni Office Windows


Topic correlati a "CHIUDERE FATTURE E TRASFERIRE L'IMPORTO SU ALTRO FILE":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti