Condividi:        

copia dal foglio 1, trova il foglio "x" ed incolla

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

copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 25/01/10 14:00

SAlve ,
ho questo problema
in un range C10:Q10 del foglio1 ho dei valori da copiare
e da incollare nel range B5:Q5 del foglio "X" ( il foglio "X" è un foglio nominato come il valore che inserisco nella cella b10 del foglio 1)
avrei bisogno di una macro che copia i valori dal range C10:Q10 del foglio 1
trova il foglio con il nome corrispondente al valroe riportato nella cella b10 del foglio 1 ( ad esempio: foglio "X")
si sposta nel foglio "x" e incolla tutto nella prima riga vuota dopo la riga 5

chi mi può aiutare?
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Sponsor
 

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 25/01/10 15:10

Ciao raffygrp e benvenuto nel forum.
Prova questa:
Codice: Seleziona tutto
Sub raffy()
Sheets("Foglio1").select
Range("C10:Q10").Copy Destination:=Sheets(Range("B10").value).Range("B" & Rows.count).End(XLup).Offset(1,0)
End Sub
Eventualmente associa la macro a un pulsante (trovi il simbolo nella barra degli strumenti Moduli; durante la creazione ti sara' chiesto a quale macro vuoi associarlo).

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 25/01/10 15:28

funzinoa, ma in parte,
ovvero incolla sempre nella stessa...dovrebbe incollare nella prima riga vuota ( 1 clik riga 5, 2 clik riga 6 ... e così via)

intanto già mille grazie !
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 25/01/10 15:42

Humm... in C10 c' e' sempre un valore o non e' garantito? dopo che hai fatto la copia, cosa leggi in cella Bn (quella su cui hai copiato) di fogliox?

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 25/01/10 15:54

hai raigione, comemttevo l'errore di nonn inserire il valore!
funziona alla perfezione ...

bhe avrei un'altra cosa da chiederti, se posso :
una macro che inserisca i valori del renga a1:d1 del foglio 1 nel foglio anagrafica, controllando prima se quel dato è stato inserito già.

grazie mille, ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 25/01/10 15:56

hai raigione, comemttevo l'errore di nonn inserire il valore!
funziona alla perfezione ...

bhe avrei un'altra cosa da chiederti, se posso :
una macro che inserisca i valori del renga a1:d1 del foglio 1 nel foglio anagrafica, controllando prima se quel dato è stato inserito già, e che apra un foglio col nome della cella a2

grazie mille, ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 26/01/10 02:34

Dici "controllando prima se quel dato e' inserito già": il controllo lo devi fare su tutte le 4 celle (A1:D1) o ce n' e' tra queste celle una che e' la chiave di confronto?

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 26/01/10 12:24

scusa mi spiego meglio
foglio 1 : ins dati : range b1 e4 riporto i dati da inserire a mano - ( nella cella b1 inserisco un numero porgressivo sul quale fare il controllo della registrazione )

folgio 2 : anagrafiche : range a4:e400 è il range dove copiare in successione i dati

la macro dovrebbe fare questo :

ins dati controlla il valrore cella b1 nel foglio ins dati, e ne verifira l'esistenza nel foglio anagrafiche che riporto alla colonna A , a questo punto deve fare una opzione : se presente dare il messaggio "dato già inserito" ( e quindi non registra i dati uscendo dalla macro ) , se nn presente copiare tutti i dati range b1:e4 foglio ins dati , incollarli nella prima riga vuota del foglio anagrafiche ed aprire una pagina col nome pari al dato inserito nella cella b2 del foglio ins dati ( registrando i dati )

....spero di essere stato chiaro.... :-? ..confido molto nel tuo aiuto, ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 26/01/10 17:44

La nuova macro sara' di principio uguale alla precedente, salvo che in testa (dopo Sheets("Foglio1").select) verificheremo se il dato di B1 e' gia' presente in foglio "Anagrafiche", e se si mandiamo un msgbox e usciamo.
Per questo si puo' inserire il seguente codice:
Codice: Seleziona tutto
If Application.WorksheetFunction.CountIf(Sheets("Anagrafiche").Range("A:A"), [B1]) > 0 Then
MsgBox ("il tuo messaggio"): Exit Sub
End If
Penso che sai gia' modificare il codice per copiare il range che ti serve e accodare nella col A di Foglio "Anagrafiche" (invece che accodare in sol B e su foglio "valore di cella B10, come nella precedente macro); ma se hai difficolta' posta ancora.

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 01/02/10 11:50

scusami, ma nn riesco proprio ad unire le due macro...

se lo faccio mi lancia un errore di runtime e mi si impalla......

saresti così gentile da scrivermela completa per come dovrebbe essere ?
e in + potresti associarmi una user form che mi indirizza i campi nel foglio 1 delle celle A10:I10 in modo da inserire i dati attraverso la user form?

grazi emille, ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 01/02/10 15:18

Seguendo le istruzioni, metto le tre righe dopo Sheets("Foglio1").select, e viene:
Codice: Seleziona tutto
Sub raffy()
Sheets("Foglio1").select
If Application.WorksheetFunction.CountIf(Sheets("Anagrafiche").Range("A:A"), [B1]) > 0 Then
MsgBox ("il tuo messaggio"): Exit Sub
End If
Range("C10:Q10").Copy Destination:=Sheets(Range("B10").value).Range("B" & Rows.count).End(XLup).Offset(1,0)
End Sub

Per quanto riguarda la userform, non ho capito che cosa vuoi farci; dimmi anche se ne hai gia' realizzate e conosci i fondamenti della loro gestione.

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 02/02/10 11:12

ok funziona!!!

ora vorrei inserire i dati nel foglio 1 ( ins dati) attraverso una user form che parte in automatico qunado apro il foglio excel, pe run numero di 10 dati da destinare ai range a10:q10 di ogni pagina

la user form deve però avere 3 opzioni :
registra costo
registra ricavo
registra pagamento

ovviemnte ho 3 pagine diverse nominate come costi ricavi pagamenti sulle quali inviare i dati ( i dati devono arrivare nel range a10:q10 delle tre pagine )

grazie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 02/02/10 16:57

Ok; devi grosso modo fare le seguenti cose:
-da excel accedi all' editor delle macro con Alt-F11
-Menu /Inserisci /Userform
-disegni la form, inserisci i controlli e le intestazioni che ti servono (textbox e pulsanti, nel tuo caso)
-visualizza la finestra Proprieta' tramite Menu /Visualizza /Finestra proprieta' ed esplora le "proprietà" di ogni oggetto; modifica in funzione del tuo senso estetico e di quanto hai in mente di fare.
-premi F7 per entrare nel modulo codice della form; seleziona un oggetto (dal menu' a tendina di sinistra) e un evento (dal menu' a tendina di dx) e imposta il codice che vuoi eseguire sull' evento
-puoi verificare come si presenta la form e come si comporta il relativo codice premendo F5 dalla userform o dal modulo codice.

E' certamente importante il debug; per questo consiglio la consultazione questo thread: viewtopic.php?t=65537

Ok, comincia e se hai problemi su qualche aspetto specifico siamo qua.

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 09/02/10 10:20

nella macro che mi hai dato la socrsa volta ( che è una cosa meravigliosa ! ) vorrei aggiungere una opzione : che nell'inserimento dei dati sul foglio di destinazione *Sheets(Range("B10").value)*
tenga conto anche delle date di emissione riportate nella cella c7 del foglio "dati"

ti riporto un esempio di elenco di destinazione:

dati in archivio:
colonna E *Sheets(Range("B10").value)*
riga 1 :data 1
riga 2: data 5
riga 3: data 6
riga4 : data 7
vorrei copiare i dati riga c del foglio dati
e destinarli in *Sheets(Range("B10").value)* riga 2 ( spostando i dati già presenti di una riga in basso ) perchè data2 è mancante nell'intervallo di date già in archivio, oppure se è un valore data8 , destinare i dati in riga 5
nn so se sono stato abbastanza chiaro...spero però che tu possa aiutarmi, ciao

Sub raffy()
Sheets("Foglio1").select
If Application.WorksheetFunction.CountIf(Sheets("dati").Range("A:A"), [d7]) > 0 Then
MsgBox ("il tuo messaggio"): Exit Sub
End If
Range("C10:Q10").Copy Destination:=Sheets(Range("B10").value).Range("B" & Rows.count).End(XLup).Offset(1,0)
End Sub
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 09/02/10 19:15

vorrei copiare i dati riga c del foglio dati
e destinarli in *Sheets(Range("B10").value)* riga 2 ( spostando i dati già presenti di una riga in basso ) perchè data2 è mancante nell'intervallo di date già in archivio, oppure se è un valore data8 , destinare i dati in riga 5
Cosa intendi con "i dati riga c"?
Se non ricordo male, la macro precedente accodava (nelle righe sottostanti); adesso vuoi annullare quel comportamento e aggiungere in testa, spostando verso il basso i dati precedenti? E che cosa intendi con "perche' data2 e' mancante nell' intervallo di date gia' in archivio"? Ricorda che della tua struttura dati non hai detto niente, avevi solo parlato di range "C10:Q10", per cui ora parlare di date senza spiegare dove sono e' inultile. E quando e' che vorresti scrivere in riga 5, e con quale logica?
Quindi fatti sentire con un po' piu' di informazioni.

Infine, la mia opinione e' che stai "smembrando l' archivio dati" che non e' mai una cosa ben fatta: i dati vanno consolidati e non smembrati; e' solo una opinione basata su quel niente che hai detto sulla tua struttura dati e sulla finalita' di quanto stai realizzando, ma se e' cosi' suggerisco caldamente di cambiare approccio.

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 10/02/10 14:09

nel folgio "dati "copia la "riga c" e la incolla nel foglio "Sheets(Range("B10").value) ".
la posizione in cui destinare i dati è la riga compresa tra due date ( tutte le date sono in colonna nel foglio Sheets(Range("B10").value) colonna E .

esempio nel foglio "Sheets(Range("B10").value) " sono già registrati questi valori data:
colonna E
riga 1 : 24/04/2010
riga 2 : 26/04/2010
riga 3 : 28/04/2010
riga4 : 29/04/2010
come puoi notare, tra tanti, mancano i dati riferiti al giorno 25/04/2010
nella cella e10 del folgio "dati" c'è il valore data , che nel mio caso è il 25/04/2010
la macro dovrebbe copiare i valori range c10:q10 foglio "dati" ed incollarli nella riga compresa tra il 24 ed il 26/04/2010 del foglio "Sheets(Range("B10").value) ", spostando tutti i dati di una riga in basso. ( non più nella prima riga vuota, ma tra due date : quella appena passata e quella subito dopo)

ottenedo così :
riga 1 : 24/04/2010
riga 2: 25/04/2010
riga 3: 26/04/2010
riga4 :28/04/2010
riga5 :29/04/2010

ovvero sceglie nel foglio "Sheets(Range("B10").value) " la riga di destinazinoe in base al valore data nel folgio "dati "cella e10.

ovviamente il tutto modificando la macro precedente o se è il caso , sostituirla con una nuova.

grazie mille, ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 10/02/10 17:01

Premetto che continuo a non capire che cosa e' la "riga c".
Comunque io non mi complicherei la vita: copi il nuovo valore in coda a tutti gli altri e alla fine fai un ordinamento per data crescente; il codice per fare cio' lo ottieni con Registra nuova macro ed eseguendo a mano l' operazione: selezioni tutte le colonne dati, esegui l' ordinamento, selezioni A1, fermi la registrazione macro. Poi in coda alla macro corrente inserisci Call MacroOrdina (o come l' hai chiamata)

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 15/02/10 12:51

rieccomi...premetto che ho quasi finito ilmio file , grazie ai tuoi aiuti..
vorre chiderti una cosa, esiste la possibilità di verificare che un foglio non sia stato aperto ?
cerco di spiegarmi meglio ....
in questa macro faccio solo un controllo su un valore in un determinato range , ma solo se il foglio "Range("A10").Value " è già presente

If Application.WorksheetFunction.CountIf(Sheets(Range("A10").Value).Range("D:D"), [E10]) > 0 Then
MsgBox ("Documento già registrato"): Exit Sub
End If
se il foglio non è presente, mi va in debug....
è possibile integrare la macro facendo anche un controllo sulle pagine aperte ? e magari lanciando un messaggio " la pagina non è stata ancora creata"
grzie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi Anthony47 » 15/02/10 16:55

Prova ainserire qualcosa come
Codice: Seleziona tutto
On Error Resume Next
SName = Sheets(Range("A10").Value).Name
If SName <> Range("B1").Value Then
'
'cosa fare se manca il foglio
'
End If
All' interno della If metterai le istruzioni da eseguire se il foglio al momento manca.

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

Re: copia dal foglio 1, trova il foglio "x" ed incolla

Postdi raffygrp » 15/02/10 17:32

sto facendo mille prove ma riscontro che le mie conocenze non sono così complete...
dove posso inserirla?
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "copia dal foglio 1, trova il foglio "x" ed incolla":


Chi c’è in linea

Visitano il forum: Ricky0185 e 51 ospiti