PDA

Visualizza versione completa : maschera inserimento e ritorno a capo


kubric
10-07-2007, 21.13.27
Ciao a tutti del forum.
Ho creato una maschera di inserimento con excel 2007, per inserire dati in un archivio di libri.
Ho crearo un pulsante a fianco della maschera con la relativa macro che inserisce i dati nelle celle dell'archivio creato in un foglio a parte, ma il problema e che non va a capo una volta fatta l'operazione.
Mi spiego meglio:
Inserisco i dati nella maschera, quali autore, anno, etc, clicco sul pulsante e i dati vengono inseriti in archivio, ma se ripeto l'operazione per inserire altri dati, me li mette sulla stessa riga cancellando quelli immessi precedentemente.
C' un modo per inserire nella macro un sistema per fa andare il cursore alla riga successiva in automatico? Spero di essermi spiegato bene.
Grazie a tutti.

Alexsandra
10-07-2007, 21.19.06
certo che c', puoi usare vari metodi (Offset uno), ma meglio vedere il codice.
posta la macro

kubric
10-07-2007, 22.05.44
Sub inserisci()
'
' inserisci Macro
'

'
Range("D4").Select
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("B6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D8").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("D6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D10").Select
Application.CutCopyMode = False
Selection.Copy
Application.WindowState = xlMinimized
Windows("Archivio Libri.xlsx").Activate
Range("E6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D12").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("F6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Windows("Inserimento.xlsx").Activate
End Sub

Alexsandra
10-07-2007, 22.29.20
ne puoi tagliare met di questo codice, perch non posti il file, se ci sono dati sensibili salvalo con un nome diverso e metti poche righe con dati a caso.
da quello che vedo con un ciclo fai quello che hai bisogno.

kubric
11-07-2007, 15.44.25
... non so programmare in questo linguaggio, ma non c' un sistema automatico in excel per aggiungere alla macro un comando per mandare semplicemente alla riga successiva il cursore nel foglio archivio, una volta inseriti i dati nella maschera di inserimento?
Grazie dell'aiuto.

Alexsandra
11-07-2007, 17.45.48
tutto il procedimento che non v, tu copi una cella e la incolli nell'altro voglio, invece dovresti copiare tutte le tue celle e incollarle nell'altro foglio.

Il comando c', supponendo che come ultima azione sei in F6 metti questa riga di codice ActiveCell.Offset(1, -5).Select prima dell'ultima riga della macro che hai postato

kubric
11-07-2007, 18.11.25
Ho risolto in un altro modo, mi bastato posizionarmi sulla sinistra del foglio excel dove ci sono i numeretti da 1,2 etc, nel foglio archivio e cliccandoci sopra col pulsante destro del mouse ho dato il comando inserisci(in pratica ha inserito un altra riga) cos facendo ogni volta che registro i dati tramite la maschera creata in un altro foglio, me li inserisce in archivio facendo saltare automaticamente all'altra riga i dati precedenti senza sovrascriverli.
Ovviamente questa operazione stata registrata su un altra macro insieme alle operazioni di inserimento eliminando quella vecchia.
La riporto nel post, caso mai serva a qualcuno.
Grazie comunque dell'aiuto.

Sub inserisciDati()
Windows("Archivio Libri.xlsx").Activate
Rows("6:6").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Windows("Inserimento.xlsx").Activate
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("B6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D8").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("D6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D10").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("E6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Inserimento.xlsx").Activate
Range("D12").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Archivio Libri.xlsx").Activate
Range("F6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Windows("Inserimento.xlsx").Activate
End Sub