View Full Version : un aiuto in excel...
fabstars
07-05-2005, 17:22
Salve ragazzi,
ho bisogno di un aiuto da chi è abbastanza esperto in excel.
In sostanza ho una serie di numeri seguiti da una serie di tre zeri. Es:
2563.000
21.000
17.000
985414.000
Ebbene a me servirebbe solo la parte senza gli zeri e il punto lasciando tutto il resto. Come fare??
2563
21
17
985414
Inoltre mi trovo in questa situazione:
ho un listato molto lungo di dati divisi su due linee. A me servirebbe poter prendere la seconda linea di dati e "spostarla" al fianco della prima linea. Poi prendere la quarta linea di dati e "spostarla" al fianco della terza linea...e così via.
So che la cosa è possibile farla in VB dal momento che ho visto farlo ma non ricordo + come fare.
Grazie
1) se il punto è separatore di migliaia... dividi tutto per 1000; se è separatore decimale basta cambiare il formato di visualizzazione ( da opzioni celle)
2) un bel copia e incolla?
fabstars
08-05-2005, 11:44
1) se il punto è separatore di migliaia... dividi tutto per 1000; se è separatore decimale basta cambiare il formato di visualizzazione ( da opzioni celle)
2) un bel copia e incolla?
Riguardo al primo punto effettivamente è un ottima idea :D (come ho fatto a non pensarci?? :rolleyes: )
Riguardo al secondo vorrei evitare di dover fare circa 32000 volte copia ed incolla :p , dal momento che il listato e lungo per l'appunto 65500 righe, ossia tutto il foglio di ecxel.
Ciao e grazie
Riguardo al primo punto effettivamente è un ottima idea :D (come ho fatto a non pensarci?? :rolleyes: )
Riguardo al secondo vorrei evitare di dover fare circa 32000 volte copia ed incolla :p , dal momento che il listato e lungo per l'appunto 65500 righe, ossia tutto il foglio di ecxel.
Ciao e grazie
selezionare tutto in una volta? (vai all'inizio... tieni premuto "shift"... premi "fine"... e la freccina nella direzione verso cui vuoi andare)
fabstars
08-05-2005, 19:23
selezionare tutto in una volta? (vai all'inizio... tieni premuto "shift"... premi "fine"... e la freccina nella direzione verso cui vuoi andare)
hhhmmmm...dunque, non credo allora che tu abbia inteso bene il mio problema ;) .
Faccio un esempio. In questo foglio di excel vi è l'anagrafica e i dati completi di una persona. Purtroppo però questi dati sono messi su due file del foglio e non su una riga intera. Esempio
1)Marco rossi - anni 28 - commerciante
2)roma - 06111111
3) Fabio Bianchi - anni 36 - studente
4)Milano - 02111111
Dunque, quello che vorrei fare io e spostare il contenuto della 2° (seconda) riga al fianco della riga numero 1, così come spostare il contenuto della riga numero 4 al fianco della riga numero 3, dal momento che fanno riferimento alla stessa persona, ed avere i dati della persona su una riga unica.
Naturalmente potri fare un copia ed incolla ma dovrei farlo per singolo rigo, e dal momento che le righe in questione sono circa 65000 :rolleyes:
Tanto per cominciare potresti selezionare le celle dalla A1 alla A4 e selezionare taglia. Dopodichè selezioni la cella A1 e selezioni incolla speciale scegliendo dalle opzioni la voce: "trasponi".
In questo modo dovrai fare il lavoro per 65000/4 = 16250 volte...
Altrimenti fai 1 bella cosa:
-registri una macro che esegue quello che ti ho appena suggerito più l'eliminazione delle righe 2, 3, 4.
-Controlli che la macro esegua il tutto con riferimenti relativi alle celle.
-Aggiungi alla fine della macro lo spostamento della cella attiva di 1 cella verso il basso
-ripeti il listato così ottenuto per 16250 (con un ciclo FOR NEXt per esempio).
x curiosità ho voluto provare a fare quello che hai scritto
ma nn mi sembra che si risolva tanto ...
quello che è scritto sulle colonne va sulle righe e basta
Prova questa MACRO in VB usando F8 (che ti fa avanzare di un passo alla volta nel codice).
Se ti sembra che funzioni premi F5 in modo che continui tutta l'esecuzione in automatico...
Ciaooo
Sub TrasponiDati() For Volte = 1 To 65530
If IsNull(Cells(Volte, 1).Value) Or Cells(Volte, 1).Value = "" Then
ActiveSheet.Columns(1).Delete
Exit SubEnd If
Range(Cells(Volte, 1), Cells(Volte + 1, 1)).Copy
Cells(Volte, 2).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Cells(Volte + 1, 1).EntireRow.Delete
NextEnd Sub
Dopo aver eseguito la macro:
-nella Cella: D1 metti questa formula: "=A1&" "&B1" ed estendi la formula su tutta la colonna fino alla riga in cui arrivano i dati (circa la 32500).
-copia tutta la colonna D ed incollala nella colonna E (con incolla speciale = "valori").
-cancella le colonne dalla A alla D
...avrai il tuo risultato con i dati della singola persona tutti su 1 unica cella in ogni riga.
E' più facile da fare che da spiegare... prova..
Ciao
fabstars
09-05-2005, 16:17
Grazie ragazzi,
appena posso proverò i vostri suggerimenti :)
Saluti
fabstars
10-05-2005, 16:59
Dunque,
ho provato ad eseguire la macro che mi hai fatto...purtroppo senza molti risultati. :muro:
Io comunque ho fatto come avevi detto prima tu, ossia a registrare la macro.
In effetti la macro così registrata funziona solo che la esegue sulle stesse righe. In effetti a me servirebbe che questa macro facesse il suo lavoro su tutto il listato. Io adesso provo ad inserirla qui, se qualcuno puo darci un'occhiata e modificarla per le mie esigenze mi farebbe un favore.
Sub Macro6()
' Macro6 Macro
' Macro registrata il 10/05/2005
Range("A2:O2").Select
Selection.Copy
Range("J1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 1
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A3:O3").Select
Selection.Copy
Range("J2").Select
ActiveSheet.Paste
ActiveWindow.LargeScroll ToRight:=-1
Rows("3:3").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A10").Select
ActiveWindow.SmallScroll ToRight:=7
Range("Q24").Select
ActiveWindow.ScrollColumn = 3
ActiveWindow.SmallScroll ToRight:=-2
Range("A4:O4").Select
Selection.Copy
Range("J3").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=-6
Rows("4:4").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A11").Select
End Sub
Questa macro si riferisce alla stessa azione fatta tre volte.
Grazie
La che ho fatto l'ho provata e funziona. Può darsi che io non abbia capito come sono strutturati i tuoi dati o che ci sia qualche problema.
Prova ad allegare il tuo file di excel al messaggio, altrimenti mandalo a:
daryl74 chiocciola baiadeicuriosi punto it
così ci do 1 occhiata.
Ciaooo
fabstars
11-05-2005, 18:11
La che ho fatto l'ho provata e funziona. Può darsi che io non abbia capito come sono strutturati i tuoi dati o che ci sia qualche problema.
Prova ad allegare il tuo file di excel al messaggio, altrimenti mandalo a:
daryl74 chiocciola baiadeicuriosi punto it
così ci do 1 occhiata.
Ciaooo
OK...domani mattina prendo un pezzo del file e te lo invio per posta.
Grazie
fabstars
17-05-2005, 16:50
Dunque,
ho provato ad eseguire la macro che mi hai fatto...purtroppo senza molti risultati. :muro:
Io comunque ho fatto come avevi detto prima tu, ossia a registrare la macro.
In effetti la macro così registrata funziona solo che la esegue sulle stesse righe. In effetti a me servirebbe che questa macro facesse il suo lavoro su tutto il listato. Io adesso provo ad inserirla qui, se qualcuno puo darci un'occhiata e modificarla per le mie esigenze mi farebbe un favore.
Sub Macro6()
' Macro6 Macro
' Macro registrata il 10/05/2005
Range("A2:O2").Select
Selection.Copy
Range("J1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 1
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A3:O3").Select
Selection.Copy
Range("J2").Select
ActiveSheet.Paste
ActiveWindow.LargeScroll ToRight:=-1
Rows("3:3").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A10").Select
ActiveWindow.SmallScroll ToRight:=7
Range("Q24").Select
ActiveWindow.ScrollColumn = 3
ActiveWindow.SmallScroll ToRight:=-2
Range("A4:O4").Select
Selection.Copy
Range("J3").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=-6
Rows("4:4").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A11").Select
End Sub
Questa macro si riferisce alla stessa azione fatta tre volte.
Grazie
Ragazzi...proprio nessuno riesce ad aiutarmi su questa macro?? :cry:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.