Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copiare contenuto da InputBox su altro modulo

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

Copiare contenuto da InputBox su altro modulo

Postdi enrico43 » 09/11/14 15:58

Buonasera,
in un modulo ho una macro per ricerca di dati differenti sul foglio reperiti tramite InputBox.
Codice: Seleziona tutto
Dim cl As Object
Set Zona = Worksheets(1).Range("S:S")
'Dimmi = InputBox("Scrivi la parola da cercare")
'If Dimmi = "" Then Exit Sub
For Each cl In Zona
If cl.Value Like "*" & Dimmi & "*" Then
cl.Select
Selection.Interior.ColorIndex = 4
ActiveCell.Offset(0, -1).Select
Dim iRow, icol As Integer
iRow = ActiveCell.Row
icol = 18
While Cells(iRow, icol).Value = 0
iRow = iRow + 1
Wend
Cells(iRow, icol).Offset(0, 2) = "1a"
Cells(iRow, icol).Offset(0, 2).Interior.ColorIndex = 4
End If
Next
10:

In un secondo modulo ho una macro che li raccoglie e li somma e li etc. secondo quanto inserito nell'InputBox.
Codice: Seleziona tutto
Set rng = Sh.Range("T:T")
    For Each c In rng
    Select Case c.Value
    Case "1a"
    dblRis = dblRis + c.Offset(0, -2).Value
    End Select
    Next
    MsgBox dblRis, 0 + 64, "Risultato 1a"
    Range("R65536").End(xlUp).Offset(2, 0) = dblRis
    Range("R65536").End(xlUp).Interior.ColorIndex = 4
    Set Sh = Nothing
    Set c = Nothing
    Set rng = Nothing
    dblRis =

poi c'è "1b" e così via fino a 167a e 167b.
Nell'altro modulo ci sono 167
Codice: Seleziona tutto
Set rng = Sh.Range("T:T")
    For Each c In rng
    Select Case c.Value
    Case "1a"
    dblRis = dblRis + c.Offset(0, -2).Value
    End Select
    Next
    MsgBox dblRis, 0 + 64, "Risultato 1a"
    Range("R65536").End(xlUp).Offset(2, 0) = dblRis
    Range("R65536").End(xlUp).Interior.ColorIndex = 4
    Set Sh = Nothing
    Set c = Nothing
    Set rng = Nothing
    dblRis = 0

ed infine
Codice: Seleziona tutto
ActiveCell.Offset(1, 0).Select
    ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIF(C[3],""1a"")>=1,SUMIF(C[3],""1a"",C[1]),0)" [color=#0000FF](i totali sono tutti negativi)[/color]   
     ActiveCell.Offset(1, 0).Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-1]C)"

Chiedo se è possibile affiancare ai risultati ottenuti con la seconda macro (quindi 167x2 colonne) quanto inserito nell'InputBox con la prima macro. Cioè corrispondenza tra risultato ed articolo cercato.
In tutto il pomeriggio non sono riuscito a risolvere. Nel peregrinare nel web ho visto molti di Voi in tanti altri forum, addirittura dal 2007. Solo Anthony non ho incontrato. Ma forse ho capito con quale altro nome si maschera.
Un cordiale saluto
Enrico
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Sponsor
 

Re: Copiare contenuto da InputBox su altro modulo

Postdi Anthony47 » 09/11/14 23:05

Ho applicato il tag Codice quello che nel tuo messaggio mi sembra codice, perche' altrimenti e' illeggibile. Tuttavia il risultato mi sembra strano: macro tranciate, frasi incomprensibili (es poi c'è "1b" e così via fino a 167a e 167b; e Nell'altro modulo ci sono 167).
Mi confermi che quanto ho formattato corrisponde al tuo pensiero?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare contenuto da InputBox su altro modulo

Postdi enrico43 » 10/11/14 07:52

Buongiorno,
grazie della tempestività e scusami della confusione. Effettivamente ho riportato le istruzioni solo parzialmente, ma solo perchè nelle macro originali sono molto più corpose. Comunque in sostanza la domanda è su come posso collegare/riportare sul foglio (unico) la parola/e inserite in una inputbox di una macro che si trova in un modulo, a fianco di celle ove ci sono risultati di operazioni che si trovano in un altra macro che si trova su altro modulo. Il foglio è uno solo, i file da trattare, oltre ad essere corposi, sono numerosi. Avevo pensato di copiare subito i dati dell'inputbox sul foglio in una cella nascosta e poi andarmeli a riprendere con l'altra macro, ma i file vanno in mano ad altre persone che potrebbero inserire qualche riga o colonna annullando la ricerca.
Buona giornata
Enrico
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: Copiare contenuto da InputBox su altro modulo

Postdi enrico43 » 10/11/14 10:36

Scusate, ho fatto girare il file su Excel 2013 (fatto con il mio Excel 2003 dove funziona benissimo) e mi si inchioda su diverse cose:
in apertura c'è una sub VarType=MsgBox("...") con le istruzioni e mi dice "la chiamata di funzione deve restituire Variant o Object;
alla parola "Zona" mi dice "impossibile trovare progetto o libreria e lo stesso con "Dimmi". Poi non so cosa altro.
In allegato il file smagrito, dove con la prima macro (ctrl+a) scrive la tabella di riepilogo e con la seconda (ctrl+b) cerca in S i termini scritti in "Dimmi", li evidenzia e scrive nella colonna T il riferimento (1a, 1b,etc) come menzionati nella tabella, somma in funzione del riferimento i valori stessa riga colonna R e riporta i totali al piede della colonna R. A sinistra poi ci sarebbe la verifica con formula Excel, ma con l'eliminazione di righe o colonne sarà andata altrove.
A me non serve che mi funzioni, già lo fa, ma che funzioni sui pc dei miei colleghi che hanno Excel 2013.
http://www.filedropper.com/1a-1b-2a-2b
Sempre grazie della Vs disponibilità.
Cordiali saluti
Enrico
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: Copiare contenuto da InputBox su altro modulo

Postdi Anthony47 » 10/11/14 15:07

Se apri l' editor delle macro (da Excel, Alt-F11) e fai Menu /Strumenti /Riferimenti vedrai che ci sono varie librerie che in qualche modo sono linkate al tuo progetto ma sono mancanti sul pc.
Per quanto riguarda Office Web Components, avevamo gia' avuto sentore che non fosse distribuito gia' con Office2010, ma il controllo per le vecchie versioni gira anche su XL2010 (non so su XL2013); lo puoi scaricare da qui:
http://www.microsoft.com/en-us/download ... x?id=22276
Sono citate anche le istruzioni di installazione.
Per quanto riguarda il device Synaptics e la Gif89 devi scoprire a che servono, se hai alternative, da dove scaricarle per installarle sui pc che useranno quel file excel.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare contenuto da InputBox su altro modulo

Postdi enrico43 » 11/11/14 08:02

Grazie.
Nel 2013 funziona solo aggiungendo le dichiarazioni Dim Zona As... e Dim Dimmi As...., cosa che il 2003 non chiede. Quindi risolto. Purtroppo lavoro a questi file nei ritagli del tempo libero, il mio lavoro è tutt'altro e quindi oltre a fare ripetizioni varie (e contorte) non ho tempo di indagare. Mi resta la Domenica pomeriggio, famiglia permettendo.
Buona giornata e alla prossima (molto vicina)
Enrico
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino


Torna a Applicazioni Office Windows


Topic correlati a "Copiare contenuto da InputBox su altro modulo":


Chi c’è in linea

Visitano il forum: alfrimpa e 17 ospiti