You are here:--Sostituisci nomi al cambio del mese
Sostituisci nomi al cambio del mese 2019-02-04T18:42:14+02:00

Home Forum Domande su Excel VBA e MACRO Sostituisci nomi al cambio del mese

  • Autore
    Articoli
  • bg66bg66
    Partecipante
      Post totali: 38
      #7840 |

      Ciao a tutti,
      nel file master ho delle formule che al cambio mese devo modificare.
      In pratica devo sostituire il nome del mese uscente con quello entrante.
      E’ una operazione di pochi secondi che faccio con trova/sostituisci

      ma non essendo sempre in ufficio…questi pochi secondi possono essere…dopo qualche giorno!!
      Quindi mi chiedevo se è possibile che:
      a) all’apertura del file, verifica se è cambiato il mese
      b) in caso positivo
      c) sostituire nel range: P4:Q75 del foglio di lavoro “Helper (2)
      d) il nome del mese presente con quello in corso.

      Ulteriore difficoltà è che nel master è già presente una Sub Workbook_open e precisamente:

      Option Explicit
      
      Private Sub Workbook_Open()
      Dim Cella As Range, differenza As Integer, data_riferimento As Long ', wsStart As Worksheets
      data_riferimento = CLng(Worksheets("Gua").Range("A3").Value)
      Set Cella = Worksheets("D_day").Range("D4")
      differenza = Date - data_riferimento
      Cella = differenza
      Set Cella = Nothing
      
      End Sub
      

      Allego anche il file con una delle formule presenti nel range sopracitato ( pari a 964 sostituzioni)
      https://www.dropbox.com/s/4eo5jhmpeuwu0rs/sostituisci%20nome%20mese%20al%20cambio%20data.xlsx?dl=0
      Grazie per l’aiuto.

      • Questo argomento è stato modificato 3 mesi, 2 settimane fa da bg66 bg66.
      • Questo argomento è stato modificato 3 mesi, 2 settimane fa da bg66 bg66.
      • Questo argomento è stato modificato 3 mesi, 2 settimane fa da bg66 bg66. Ragione: difficoltà ad inserire il link
    • BySalvBySalv
      Amministratore del forum
        Post totali: 436

        Ciao BG6, potresti far fare il confronto del mese all’apertura del file e quindi lanciare una macro che modifichi il mese esempio

        if Month(Data_riferimento) <> Month(date) then Macro(lancia modifica)

        Ciao By Sal

      • bg66bg66
        Partecipante
          Post totali: 38

          Ciao By Sal,
          purtroppo non ci sono riuscito.
          Dopo vari e vani tentativi, ci ho “girato” intorno in questo modo ma ovviamente non fà nulla di quello che avrei bisogno:
          Sub cambia_mese1()
          Dim xFind As String, xRep As String, xRg As Range
          On Error Resume Next
          Set xRg = Range(“P4:Q75”) ‘Cells
          xFind = Application.InputBox(“Trova:”, “Mittente”, , , , , 2)
          xRep = Application.InputBox(“Sostituisci:”, “Destinatario”, , , , , 2)
          If xFind = “False” Or xRep = “False” Then Exit Sub
          xRg.Replace xFind, xRep, xlPart, xlByRows, False, False, False, False
          End Sub
          In pratica:
          1) il nome del mese entrante lo posso estrarre con la funzione oggi ma quello del mese presente in formula? Con stringa.estrai -> non ci sono riuscito
          2) Una volta definito le celle potrei adattare quanto fatto con il registratore:
          Sub cambia_mese()
          Range(“P4:Q75″).Select
          Selection.Replace What:=”GENNAIO”, Replacement:=”FEBBRAIO”, LookAt:= _
          xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
          ReplaceFormat:=False
          End Sub
          3) A codice finito come integrarlo nello script Workbook_open esistente?

          Attendo tue se puoi.

        • BySalvBySalv
          Amministratore del forum
            Post totali: 436

            Non Puoi inserire il file con pochi dati, a volte solo la macro anche modificandola o indicarti cosa modificare, qualche elemento del foglio con qualche formato particolare non ti permette l’esecuzione, ecco la richiesta del file.

            Ciao By Sal :bye:

          • bg66bg66
            Partecipante
              Post totali: 38

              Ciao by Sal,
              scusami non avevo capito che il file master era d’aiuto. Speravo di cavarmela da solo con delle inidcazioni generali…
              https://www.dropbox.com/s/g72mcew56awe0e0/1_PRODUZ_forum.xlsm?dl=0“>https://www.dropbox.com/s/g72mcew56awe0e0/1_PRODUZ_forum.xlsm?dl=0

              Per evitare attivazione debug ho provveduto ad inertizzare/eliminare gli script presenti.

              Grazie ancora.

            • BySalvBySalv
              Amministratore del forum
                Post totali: 436

                Ciao bg66, ho guardato meglio la formula delle colonne P-Q questa

                =SE.ERRORE(INDICE('G:\FORNI_2018\SETTEMBRE\[T09_SETTEMBRE_2018.xlsm]PRODUZIONE'!$M$1:$P$125;CONFRONTA($A$2+INT((RESTO((RIF.RIGA(Q1)-1)/6;6)));'G:\FORNI_2018\SETTEMBRE\[T09_SETTEMBRE_2018.xlsm]PRODUZIONE'!$A$1:$A$125;0)+INT((RESTO(RIF.RIGA(Q1)-1;6))/2);CONFRONTA(Q$3&" "&SE(VAL.PARI(RIF.RIGA());1;2);'G:\FORNI_2018\SETTEMBRE\[T09_SETTEMBRE_2018.xlsm]PRODUZIONE'!$M$1:$P$1;0));"")

                ma il Settembre che vorresti trasformare ad Ottobre, mese successivo, si tratta di Cartelle e File, non so se poi andrebbe bene in quanto sono presenti poi tali cartelle e File?, altrimenti ti darà errore.

                Ciao By Sal :bye:

              • bg66bg66
                Partecipante
                  Post totali: 38

                  Ciao By Sal,
                  ti confermo che sia il file che la cartella sono già presenti quando faccio la sostituzione.

                • sidsid
                  Moderatore
                    Post totali: 686

                    Secondo me dovresti avere una cella di riferimento in cui memorizzi il mese inserito nelle formule.
                    Poi ogni volta che apri il file devi confrontare il mese odierno, con la cella di cui sopra; se sono diversi esegui la macro, e nella cella di riferimento memorizzi il nuovo mese.
                    Spero di essere stato chiaro

                  • bg66bg66
                    Partecipante
                      Post totali: 38

                      Ciao Sid & By Sal,
                      se divido in step l’intervento forse ci arrivo .
                      1) definire mese entrante (FATTO):
                      in I20 -> =OGGI()
                      in I21 -> =TESTO(I20;”MMMM”)

                      2) definire mese uscente
                      Ho provato puntando alla cella specifica ( esempio P4) con stringa.estrai poi con SINISTRA ed infine con DESTRA ma non ottengo nessun risultato:
                      in I23 -> =STRINGA.ESTRAI(P4;33;7) -> il risultato non sarebbe comunque corretto per il numero di lettere differenti per i vari mesi ma era per capire la strada da percorrere.
                      https://www.dropbox.com/s/g72mcew56awe0e0/1_PRODUZ_forum.xlsm?dl=0

                      Per ora mi fermo qui ed attendo vs. gradito aiuto.

                      • Questa risposta è stata modificata 3 mesi, 1 settimana fa da bg66 bg66.
                      • Questa risposta è stata modificata 3 mesi, 1 settimana fa da bg66 bg66.
                    • bg66bg66
                      Partecipante
                        Post totali: 38

                        Ciao a tutti,
                        per il punto sotto, ho ricevuto un grosso aiuto risolutivo che, sperando di fare cosa gradita, condivido con voi.

                        2) definire mese uscente

                        E’ stata sfruttata la “funzione MACRO4”. Queste funzioni vanno usate in un nome definito ed il file deve essere salvato come .xlsm (come se contenesse una macro…ed in effetti è così).

                        Crea un nome definito (ad esempio EstraiFormula) ed usa questa formula:
                        =INFO.CELLA(6;’Helper (2)’!$P$4)
                        quindi la formula che estrarrà il mese uscente diventerà:
                        =STRINGA.ESTRAI(EstraiFormula;TROVA(“[“;EstraiFormula)+5;TROVA(“_”;EstraiFormula;TROVA(“[“;EstraiFormula)+6)-TROVA(“[“;EstraiFormula)-5)

                        Nei prossimi giorni proverò a creare lo script per il “trova e sostituisci”

                        A presto..spero.
                        BG66

                        • Questa risposta è stata modificata 3 mesi fa da bg66 bg66.

                      Devi essere loggato per rispondere a questa discussione.

                      Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                      Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                      Chiudi