Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Simulare modulo dati ma non ci riesco

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

Simulare modulo dati ma non ci riesco

Postdi f.liporace » 03/09/14 14:41

Ho un foglio excel dove sono memorizzati tutti i miei libri: nella colonna A vi è il numero di opera, nella colonna B la collocazione, nella colonna C il titolo e così via. Ogni riga, insomma, costituisce il mio record dati dell'opera numero X. Ho creato, in un secondo foglio, una macro che mi carica tutti i dati dell'opera X che io indico nella cella C3. In pratica nella cella C3 digito il numero di opera e poi clicco su un pulsante collegato ad una semplice macro che mi carica tutti gli altri dati. Ora, io vorrei creare una macro che mi memorizzi i dati, che io modifico in questo secondo foglio, nel record X del primo foglio. Ad esempio se in C3 del secondo foglio è contenuto 85 (opera n.85) , in C4 la collocazione, in C5 il titolo e così via vorrei una macro che mi vada a memorizzare in B86 (85+1) del primo foglio la collocazione contenuta in C4 del secondo foglio, in C86 del primo foglio il titolo contenuto in C5 del secondo foglio e così via. Più semplicemente: come creare una macro per memorizzare il contenuto della cella, ad esempio, C5 del foglio n.2 nella cella A(x+1) del foglio n.1 dove x rappresenta il numero di riga, variabile, del foglio n.1 in cui memorizzare il dato?
f.liporace
Newbie
 
Post: 5
Iscritto il: 03/09/14 14:07

Sponsor
 

Re: Simulare modulo dati ma non ci riesco

Postdi ricky53 » 03/09/14 14:46

Ciao,
io consiglio l'utilizzo di una "UserForm" in cui inserisci una casella di testo per la ricerca dei dati e tante caselle di testo nelle quali riportare, automaticamente, i dati trovati, poi con un pulsante (in caso di modifica dei dati) effettuare l'aggiornamento dei dati originari.

Non è proprio semplice ma neanche difficile ... se hai conoscenze del VBA e della programmazione potresti arrivare ad avere un bel lavoro.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Simulare modulo dati ma non ci riesco

Postdi f.liporace » 03/09/14 22:49

Purtroppo di vba non ne so nulla e proprio per questo ho scritto qui. Non so nemmeno come utilizzare una userform. In ogni caso come farei ad aggiornare i dati originari?
f.liporace
Newbie
 
Post: 5
Iscritto il: 03/09/14 14:07

Re: Simulare modulo dati ma non ci riesco

Postdi ricky53 » 04/09/14 00:25

Ciao,
allora la vedo dura se non ti sai muovere nel VBA ... Non è complesso da utilizzare e poi esiste il meraviglioso "Registratore di Macro"

Per aggiornare i dati si copiano quelli presenti nelle varie caselle di testo che tu hai aggiornato scrivendoli, automaticamente, nelle corrispondenti celle.

Se invii un file di esempio provo a proporti una bozza di utilizzo di quanto ti ho proposto.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Simulare modulo dati ma non ci riesco

Postdi f.liporace » 04/09/14 09:47

Innanzitutto ti ringrazio per la pazienza, ma non posso utilizzare il registratore macro perché le celle del primo foglio dove bisogna memorizzare le modifiche hanno la colonna nota ma la riga dipende dal contenuto della cella C3 del secondo foglio. A me servirebbe un codice vba. Appena posso ti invio un file di esempio. Grazie.
f.liporace
Newbie
 
Post: 5
Iscritto il: 03/09/14 14:07

Re: Simulare modulo dati ma non ci riesco

Postdi ricky53 » 04/09/14 10:49

Ciao,
non capisco perchè non puoi utilizzare il registratore.
Fai una prova e leggi il codice ottenuto lascia perdere il discorso delle celle ...

INFORMAZIONE: il registratore di macro è molto utile in tantissimi casi per ottenere il codice sul quale poi lavorare!

Attendiamo il tuo file
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Simulare modulo dati ma non ci riesco

Postdi f.liporace » 04/09/14 22:56

Ho registrato la macro per l'opera n.238:

Codice: Seleziona tutto
Sub memorizza_modifiche()
'
' memorizza_modifiche Macro
'

'
    ActiveWindow.LargeScroll ToRight:=1
    Range("BX4").Select
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    ActiveWindow.SmallScroll Down:=7
    Range("B239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("C239").Select
    ActiveWindow.SmallScroll Down:=-12
    ActiveWindow.LargeScroll Down:=1
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("D239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("E239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("F239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("G239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("H239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("I239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("J239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("K239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("L239").Select
    ActiveWindow.SmallScroll Down:=-6
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("M239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("N239").Select
    ActiveWindow.SmallScroll Down:=-6
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("O239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("P239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Range("BX19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Bibliot 9.0").Select
    Range("Q239").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Modifica2").Select
    Application.CutCopyMode = False
    ActiveWindow.ScrollColumn = 51
    ActiveWindow.ScrollColumn = 50
    ActiveWindow.ScrollColumn = 49
    ActiveWindow.ScrollColumn = 48
    ActiveWindow.ScrollColumn = 47
    ActiveWindow.ScrollColumn = 46
    ActiveWindow.ScrollColumn = 45
    ActiveWindow.ScrollColumn = 44
    ActiveWindow.ScrollColumn = 43
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.ScrollColumn = 41
    ActiveWindow.ScrollColumn = 40
    ActiveWindow.ScrollColumn = 38
    ActiveWindow.ScrollColumn = 36
    ActiveWindow.ScrollColumn = 35
    ActiveWindow.ScrollColumn = 33
    ActiveWindow.ScrollColumn = 31
    ActiveWindow.ScrollColumn = 30
    ActiveWindow.ScrollColumn = 29
    ActiveWindow.ScrollColumn = 28
    ActiveWindow.ScrollColumn = 27
    ActiveWindow.ScrollColumn = 26
    ActiveWindow.ScrollColumn = 25
    ActiveWindow.ScrollColumn = 24
    ActiveWindow.ScrollColumn = 23
    ActiveWindow.ScrollColumn = 22
    ActiveWindow.ScrollColumn = 21
    ActiveWindow.ScrollColumn = 19
    ActiveWindow.ScrollColumn = 18
    ActiveWindow.ScrollColumn = 17
    ActiveWindow.ScrollColumn = 16
    ActiveWindow.ScrollColumn = 15
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A1").Select
End Sub


Come si rileva facilmente in pratica viene copiato il contenuto della cella BX4 del foglio Modifica2 e viene copiato nella cella B239 del foglio Bibliot 9.0; poi il contenuto della cella BX5 viene copiato nella C239 e così via fino alla cella BX19 del foglio Modifica2 che viene copiato nella cella Q239 del foglio Bibliot 9.0. In questo caso manca un passaggio fondamentale: infatti in BX3 del foglio Modifica2 è contenuta l'informazione del numero di opera (nell'esempio è 238). Come faccio, però, a creare una macro che mi va a memorizzare nella riga K+1 del foglio Bibliot 9.0 quando in BX3 del foglio Modifica2 è contenuto K ? Cioè, detto K il il numero contenuto nella cella BX3 del foglio Modifica2, la macro mi deve memorizzare nella colonna B"K+ 1" di Bibliot 9.0 il contenuto della cella BX4 di Modifica2; nella colonna C"k+1" di Bibliot 9.0 il contenuto della cella BX5 di Modifica2 e così via. Riesci ad aiutarmi a modificare la macro col valore variabile?
f.liporace
Newbie
 
Post: 5
Iscritto il: 03/09/14 14:07

Re: Simulare modulo dati ma non ci riesco

Postdi Anthony47 » 04/09/14 23:42

Ciao f.liporace, benvenuto nel forum.
Quindi la macro che hai pubblicato fa il lavoro che hai richiesto salvo che, presi i dati da foglio Modifica2 intervallo BX4:BX19, essi non vanno incollati in B239:Q239 di Bibliot 9.0 ma in B:Q della riga indicata in BX3 +1 di Modifica2. Giusto?

Se e' cosi', allora la macro adattata potrebbe essere:
Codice: Seleziona tutto
Sub flipor()
'
Sheets("Modifica2").Select
Range("BX4:BX19").Copy
Sheets("Bibliot 9.0").Range("B" & Range("BX3").Value + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Range("A1").Select
'
End Sub
Nulla di piu'.

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Simulare modulo dati ma non ci riesco

Postdi ricky53 » 05/09/14 00:00

Ciao f.liporace,
l'intervallo da copiare è sempre "BX4:BX19" ???

Hai provato la macro di Anthony?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Simulare modulo dati ma non ci riesco

Postdi f.liporace » 05/09/14 08:46

Sì la macro di Anthony è perfetta e funziona correttamente. Ringraziarvi è il minimo. Rimango veramente colpito dalla velocità con cui mi sono state proposte le soluzioni. Cosa dire, stavo pensando di passare tutto in Access ma sarebbe stato per me molto complicato perché mi trovo bene con Excel che, tranne il linguaggio vba, conosco molto bene. E poi avrei dovuto costruire nuove tabelle....farlo per un file costituito da oltre 1350 record era un bel lavoro. GRAZIE!!!

Non so come fare per mettere a disposizione di altri questo post. Chiedo ai più esperti di farlo per me. Io sono a disposizione per chiunque volesse maggiori chiarimenti su come è impostato il "database" dei miei libri.
f.liporace
Newbie
 
Post: 5
Iscritto il: 03/09/14 14:07


Torna a Applicazioni Office Windows


Topic correlati a "Simulare modulo dati ma non ci riesco":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti