Condividi:        

Inserimento Record in un DB

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

Inserimento Record in un DB

Postdi Lele2774 » 31/12/13 09:29

Ciao

Vi ripropongo una questione che avevo affrontato già qualche mese fa (purtroppo senza successo).

Allora…
Il problema è il seguente:
Ho un file xls che si chiama “AirEx” che sta sul mio desktop.
In questo file c’è un foglio che si chiama “Record”
In questo foglio c’è un record di dati nella riga 6 e dalla colonna C fino alla colonna AG.
Range C6:AG6
Nella Cella C6 c’è un codice alfanumerico “XXXX_mm_nnnn”
ES: XXXX_mm_1234

L’altro file si chiama “Numerazione” e sta su una cartella condivisa in Rete.
Il foglio si chiama “foglio2”
In foglio2… dalla riga 7, dalla colonna D fino alla AH, sono riportati tutti i copia ed incolla del foglio Record del file AirEx.
ES:
XXXX_mm_1232
XXXX_mm_1233
XXXX_mm_1234

Lo scopo della MACRO dovrebbe copiare i valori in Record ed incollarli in Foglio2 nella riga “giusta”.
Per “giusta” intendo di copiare il record in maniera sequenziale; quindi… se il codice alfanumerico in record C6 è XXX_mm_1200
Tale record dovrebbe essere incollato nella riga 1206 ( 6 + 1200 dato che il primo record libero è dalla riga 7)

grazie anticipatamente
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Sponsor
 

Re: Inserimento Record in un DB

Postdi Flash30005 » 31/12/13 10:32

Quale versione di Office hai?
E' necessaria la condizione di copiare nella riga avente quel numero di record
oppure è sufficiente incollare il record nella prima riga libera del foglio destinazione?

ciao

NB. evita di mettere i file sul desktop essendo una cartella "variabile" da Pc a Pc, è preferibile una cartella sul disco C:\ (es.: C:\Temp o altro)
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Inserimento Record in un DB

Postdi Lele2774 » 31/12/13 10:41

1.la versione è quella del 2010
2. in questo momento... è sufficiente copiare il record nella prima riga libera

grazie per il suggerimento relativamente alla directory!
a proposito ... ti servono i path dei vari file?
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Flash30005 » 31/12/13 12:23

In un modulo del file Numerazione.xlsm inserisci questo codice e adatta il percorso del file di origine dati (AirEx.xlsx)
Codice: Seleziona tutto
Sub CopiaR()
Filem = ActiveWorkbook.Name
UR2 = Range("D" & Rows.Count).End(xlUp).Row
Perc = "C:\Temp\"  '<<<<<<<<<<<<<< inserire il percorso del file Airex.Xlsx completo di slash finale (\)
Nfile = "AirEx.xlsx"  '<<< nome del file completo di estensione, se necessario cambiare in AirEx.xlsm
Application.Workbooks.Open Perc & Nfile
 Worksheets("Record").Select
UR1 = Range("C" & Rows.Count).End(xlUp).Row
Range("C6:AG" & UR1).Copy Destination:=Workbooks(Filem).Worksheets("Foglio2").Range("D" & UR2 + 1)
Workbooks(Nfile).Close SaveChanges:=False
End Sub


Avvia la macro

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Inserimento Record in un DB

Postdi Lele2774 » 02/01/14 13:09

mi sono scordato di dire però... che i file sono su 2 directory diverse.

il file AirEx ... è sul mio desktop, mentre il file numerazione è una cartella condivisa.
questo immagino cambi qualcosa....

grazie
ciao
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Lele2774 » 02/01/14 13:18

ho provato la macro... opportunamente modificata:

------------------------------------------------------------------------------------------------------------------------------------
Codice: Seleziona tutto
Sub CopiaR()

Filem = ActiveWorkbook.Name
UR2 = Range("D" & Rows.Count).End(xlUp).Row
Perc = "C:\Users\2525008\Desktop\DSS\AirEx.xlsm\" '<<<<<<<<<<<<<< inserire il percorso del file Airex.Xlsx completo di slash finale (\)
Nfile = "AirEx.xlsm" '<<< nome del file completo di estensione, se necessario cambiare in AirEx.xlsm
Application.Workbooks.Open Perc & Nfile
Worksheets("Record").Select
UR1 = Range("C" & Rows.Count).End(xlUp).Row
Range("C6:AG" & UR1).Copy Destination:=Workbooks(Filem).Worksheets("Foglio2").Range("D" & UR2 + 1)
Workbooks(Nfile).Close SaveChanges:=False

End Sub


------------------------------------------------------------------------------------------------------------------------------------
la macro si ferma alla seguente istruzione:
Application.Workbooks.Open Perc & Nfile
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Anthony47 » 02/01/14 19:48

Perc = "C:\Users\2525008\Desktop\DSS\AirEx.xlsm\"

Forse perche' AirEx.xlsm non fa parte della directory??

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

Re: Inserimento Record in un DB

Postdi Lele2774 » 04/01/14 16:08

no... il File AirEx si trova sul mio desktop, mentre il file quotazioni si trova su una cartella condivisa.
pertanto...
AirEx ==> Directory C
Quotazioni ==> Directory X

altra questione:
invece di far girare la Macro su un modulo del file quotazione è possibile farla girare sul file AirEx?

grazie
ciao
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Anthony47 » 05/01/14 01:25

Hummm... Forse il tuo glossario e' diverso dal nostro...
La directory e' il "percorso" che porta al file; quindi AirEx.xlsm non fa parte della directory, senza punto interrogativo. La directory e' "C:\Users\2525008\Desktop\DSS\"; anzi, per essere precisi, dovrei dire "Users\2525008\Desktop\DSS\", essendo C: il "drive".
Un po' come il nostro indirizzo di casa: nome= AirEx.xlsm, indirizzo= Users\2525008\Desktop\DSS\", Citta'=C:\
Puoi mettere la macro nel file AirEx, previa qualche modifica...
Poiche' hai detto che vuoi copiare "un record di dati nella riga 6 e dalla colonna C fino alla colonna AG" da foglio Record di AirEx accodandolo in Foglio2 del file Numerazione.xlsm, la macro dovrebbe essere
Codice: Seleziona tutto
Sub pippo123()
Dim Target As String, myFile As String
'
myFile = "X:\Directory\Numerazione.xlsm"    '<<<
On Error Resume Next
Target = Workbooks("Numerazione.xlsm").Name
On Error GoTo 0
If Target = "" Then Workbooks.Open (myFile)
Workbooks("Numerazione.xlsm").Activate
ThisWorkbook.Sheets("Record").Range("C6:AG6").Copy _
    Destination:=Sheets("Foglio2").Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)
ThisWorkbook.Activate
End Sub
L' indirizzo completo del file su cui copiare lo metterai nella riga marcata <<<

Se il file Numerazione.xlsm non e' aperto allora la macro lo aprira', e lo lascera' aperto.

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

Re: Inserimento Record in un DB

Postdi Lele2774 » 09/01/14 22:28

pardon.
io per directory ... intendo la "cartella" finale, mentre tutto quello che c'è prima...lo chiamo "path".
dato che le mie conoscenze informatiche si esauriscono con il Grillo Parlante (riprova e controlla) sono più che certo che siate voi ad avere ragione :-)

ok... appena posso ... proverò questa MACRO (adattando le directory)
vi faccio sapere
grazie

ciao
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Lele2774 » 10/01/14 11:35

ho provato.
Funziona.

c'è soltanto un piccolo/grande problema.
la macro deve incollare i valori contenuti nelle celle

pertanto... una sorta di "Paste Values"
grazie mille
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Inserimento Record in un DB

Postdi Anthony47 » 10/01/14 15:51

Con un po' di fantasia, invece di
ThisWorkbook.Sheets("Record").Range("C6:AG6").Copy _
Destination:=Sheets("Foglio2").Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)

userai
Codice: Seleziona tutto
ThisWorkbook.Sheets("Record").Range("C6:AG6").Copy
Sheets("Foglio2").Cells(Rows.Count, "D").End(xlUp).Offset(1, 0).PasteSpecial _
       Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False


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

Re: Inserimento Record in un DB

Postdi Lele2774 » 14/01/14 10:59

FUNZIONA.

grandissimo!!!
grazie ancora
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55


Torna a Applicazioni Office Windows


Topic correlati a "Inserimento Record in un DB":


Chi c’è in linea

Visitano il forum: Nessuno e 69 ospiti