4/18/2012 10:10 AM |
|
| | | Post: 256 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Buongiorno
Ho un dbase di dati di un palinsesto
e' possibile inserire in una cella il valore x ed automaticamnete mi
archivia tutta la riga in un altro foglio2?
grazie
allego file
DBASE.xlsx
------------------------
 |
4/18/2012 10:58 AM |
|
| | | Post: 63 | Registered in: 3/13/2012
| Location: LIVORNO | Age: 68 | Junior User | | |
|
quale valore inserisci ed in quale cella ?
qualsiasi ? [Edited by patel45 4/18/2012 10:59 AM]
----------
Win 8 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
4/18/2012 10:59 AM |
|
| | | Post: 256 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
patel45, 18/04/2012 10.58:
devi essere più preciso, quale valore inserisci ed in quale cella ?
qualsiasi ?
trovi tutto nel file vedi esempio ..grz
------------------------
 |
4/18/2012 11:12 AM |
|
| | | Post: 713 | Registered in: 9/24/2008
| Location: LATINA | Age: 58 | Senior User | | |
|
Ciao Mat e Patel se vuoi inserire una "X" nel file e copiare tutta la riga (nel file c'è evidenziato 1.90) puoi mettere questa "X" in colonna AA poi applichi il filtro ed in questa colonna selezioni solo la "X" e ti rimangono solo le righe complete dove tu hai inserito la X.
Ora fai un semplice copi/incolla sul foglio2.
Puoi anche, usando il registratore di macro, registrare il tutto e lanciare la macro.
fai sapere
Un saluto
Un saluto
Berna11
-----------
Excel-2007
|
4/18/2012 11:56 AM |
|
| | | Post: 257 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Berna11, 18/04/2012 11.12:
Ciao Mat e Patel se vuoi inserire una "X" nel file e copiare tutta la riga (nel file c'è evidenziato 1.90) puoi mettere questa "X" in colonna AA poi applichi il filtro ed in questa colonna selezioni solo la "X" e ti rimangono solo le righe complete dove tu hai inserito la X.
Ora fai un semplice copi/incolla sul foglio2.
Puoi anche, usando il registratore di macro, registrare il tutto e lanciare la macro.
fai sapere
Un saluto
Forse mi sono spiegato male un valore X stava per 1,90 .. 1,95 .. 2,04 ecc
io inserisco un valore ed automaticamente mi archivia solo le righe dove c'e' quest'ultimo
------------------------
 |
4/18/2012 12:45 PM |
|
| | | Post: 64 | Registered in: 3/13/2012
| Location: LIVORNO | Age: 68 | Junior User | | |
|
se ti faccio domande è evidente che non ho capito ed ancora non ho capito, ripeto
quale valore inserisci ed in quale cella ?
qualsiasi cella ?
lo scopo è archiviare le modifiche fatte ? [Edited by patel45 4/18/2012 12:47 PM]
----------
Win 8 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
4/18/2012 12:47 PM |
|
| | | Post: 52 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Ciao.
Ecco una macro che fa quello che chiedi:
====================================================================== Option Explicit
Public Sub CopiaRighe()
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("Foglio2")
val1 = [ActiveCell]
With ActiveCell.EntireColumn
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = .Cells(i, 1).Value Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub======================================================================
La macro cerca il valore della cella attualmente selezionata e copia le righe corrispondenti in "Foglio 2".
Se vuoi che funzioni in maniera diversa specifica... __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/18/2012 1:09 PM |
|
| | | Post: 258 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 18/04/2012 12.47:
Ciao.
Ecco una macro che fa quello che chiedi:
====================================================================== Option Explicit
Public Sub CopiaRighe()
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("Foglio2")
val1 = [ActiveCell]
With ActiveCell.EntireColumn
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = .Cells(i, 1).Value Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub======================================================================
La macro cerca il valore della cella attualmente selezionata e copia le righe corrispondenti in "Foglio 2".
Se vuoi che funzioni in maniera diversa specifica...
grazie ... prima di tutto
nn capisco come mai copia solo 1 valore il primo .. mentre nel databese c'e' ne sono 2 ... puoi verificare grazie
------------------------
 |
4/18/2012 1:10 PM |
|
| | | Post: 259 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
patel45, 18/04/2012 12.45:
se ti faccio domande è evidente che non ho capito ed ancora non ho capito, ripeto
quale valore inserisci ed in quale cella ?
qualsiasi cella ?
lo scopo è archiviare le modifiche fatte ?
In cella es. AC2 inserisco 1,90 ...
... lo scopo e' di archiviare solo i dati che contengono 1,90
...
------------------------
 |
4/18/2012 1:27 PM |
|
| | | Post: 54 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Ciao e scusa!
Non avevo visto il campo per l'inserimento del valore perchè era fuori dalla finestra. Per farla funzionare come vuoi tu occorre fare qualche piccola modifica: Public Sub CopiaRighe()
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("Foglio2")
val1 = CDbl([AC3])
With sh1.Columns(8) 'esegue la ricerca nella colonna h
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = CDbl(.Cells(i, 1).Value) Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/18/2012 1:34 PM |
|
| | | Post: 260 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 18/04/2012 13.27:
Ciao e scusa!
Non avevo visto il campo per l'inserimento del valore perchè era fuori dalla finestra. Per farla funzionare come vuoi tu occorre fare qualche piccola modifica: Public Sub CopiaRighe()
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("Foglio2")
val1 = CDbl([AC3])
With sh1.Columns(8) 'esegue la ricerca nella colonna h
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = CDbl(.Cells(i, 1).Value) Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
nn va ...
nn puoi fare una verifica sul file execel grazie
------------------------
 |
4/18/2012 1:38 PM |
|
| | | Post: 261 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Mat71, 18/04/2012 13.34:
nn va ...
nn puoi fare una verifica sul file execel grazie
SCUSA SCUSAAA ...
FUNZIONNNAAAAAAAAAAAAAAAA
GRAZIEEE
------------------------
 |
4/18/2012 2:11 PM |
|
| | | Post: 56 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Yepp! __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/18/2012 4:13 PM |
|
| | | Post: 263 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 18/04/2012 14.11:
Yepp!
..questa macro vale anche se inserisco un testo ...?
quidi mi trova tutti i testi contenuti nella colonna specificata!
oppure bisogna modificarla?
------------------------
 |
4/18/2012 6:32 PM |
|
| | | Post: 58 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Scritta così col testo non funziona, dovresti sostituire i due
CDbl()
con
Format$()
inquesto modo dovrebbe (dovrebbe) funzionare sia con numeri che con testi. [Edited by Zer0kelvin 4/18/2012 6:33 PM] __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/19/2012 8:48 AM |
|
| | | Post: 264 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 18/04/2012 18.32:
Scritta così col testo non funziona, dovresti sostituire i due
CDbl()
con
Format$()
inquesto modo dovrebbe (dovrebbe) funzionare sia con numeri che con testi.
buongiorno
no .. purtroppo nn funziona
con i numeri si sostituendo si
con il testo nn va :(
Public Sub Copia_txt()
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("RIEPILOGO")
val1 = Format$([AC3])
With sh1.Columns(4) 'esegue la ricerca nella colonna h
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Format$(.Cells(i, 1).Value) Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub [Edited by Mat71 4/19/2012 8:49 AM]
------------------------
 |
4/19/2012 1:07 PM |
|
| | | Post: 61 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Il mio dubbio veramente era che non funzionasse in maniera appropriata coi numeri!
potrebbe essere che ci siano delle maiuscole/minuscole che differiscono, o degli spazi all'inizio o alla fine del testo.
Prova a fare così:
all'inizio del modulo inserisci questa riga:
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Sostituisci
Format$()
con
Trim(Format$()) ' elimina eventuali spazi all'nizio o alla fine
Ciao.
PS: tieni presente che, così come è scritta, la macro esegue la ricerca SEMPRE e solo nella colonna H [Edited by Zer0kelvin 4/19/2012 1:10 PM] __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/19/2012 1:24 PM |
|
| | | Post: 266 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 19/04/2012 13.07:
Il mio dubbio veramente era che non funzionasse in maniera appropriata coi numeri!
potrebbe essere che ci siano delle maiuscole/minuscole che differiscono, o degli spazi all'inizio o alla fine del testo.
Prova a fare così:
all'inizio del modulo inserisci questa riga:
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Sostituisci
Format$()
con
Trim(Format$()) ' elimina eventuali spazi all'nizio o alla fine
Ciao.
PS: tieni presente che, così come è scritta, la macro esegue la ricerca SEMPRE e solo nella colonna H
ecco la modifica ...
ma nn va
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Public Sub Copia_txt()
PULISCI
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("RIEPILOGO")
val1 = Trim(Format$([AC6]))
With sh1.Columns(4) 'esegue la ricerca nella colonna h
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Trim(Format$(.Cells(i, 1).Value)) Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
....................
mettendo il valore da icercare in cella AC6 e considerando il dato in colonna D ...
------------------------
 |
4/23/2012 8:52 AM |
|
| | | Post: 269 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Mat71, 19/04/2012 13.24:
ecco la modifica ...
ma nn va
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Public Sub Copia_txt()
PULISCI
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet
Set sh2 = Sheets("RIEPILOGO")
val1 = Trim(Format$([AC6]))
With sh1.Columns(4) 'esegue la ricerca nella colonna h
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Trim(Format$(.Cells(i, 1).Value)) Then
conta = conta + 1
sh1.Rows(i).Copy Destination:=sh2.Rows(conta + 1)
End If
Next i
MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
....................
mettendo il valore da icercare in cella AC6 e considerando il dato in colonna D ...
Up
------------------------
 |
4/23/2012 2:49 PM |
|
| | | Post: 67 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Ciao.
Il problema stà nel fatto che nella colonna in cui fai la ricerca la prima cella è vuota, quindi l'istruzione ...End(xlDown) fa fermare la ricerca alla seconda cella. La routine funziona solo se tutte le celle della colonna contengono un valore...
Se inserisci qualcosa (va bene anche uno spazio) nella prima cella della colonna dovrebbe funzionare.
... e scusa il ritardo. __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/23/2012 2:56 PM |
|
| | | Post: 270 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 23/04/2012 14.49:
Ciao.
Il problema stà nel fatto che nella colonna in cui fai la ricerca la prima cella è vuota, quindi l'istruzione ...End(xlDown) fa fermare la ricerca alla seconda cella. La routine funziona solo se tutte le celle della colonna contengono un valore...
Se inserisci qualcosa (va bene anche uno spazio) nella prima cella della colonna dovrebbe funzionare.
... e scusa il ritardo.
MA scusa di che' .. sono io che devo ringraziarti .. era solo una variabile in piu' anche per capire ..grazie 1000
provo subito
------------------------
 |
4/26/2012 9:34 AM |
|
| | | Post: 271 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 23/04/2012 14.49:
Ciao.
Il problema stà nel fatto che nella colonna in cui fai la ricerca la prima cella è vuota, quindi l'istruzione ...End(xlDown) fa fermare la ricerca alla seconda cella. La routine funziona solo se tutte le celle della colonna contengono un valore...
Se inserisci qualcosa (va bene anche uno spazio) nella prima cella della colonna dovrebbe funzionare.
... e scusa il ritardo.
Vorrei approfondire sempre di piu' la conoscenza del vba
se volessi cercare lo stesso valore in piu' colonne ?
copiare solo una parte della riga es. da A a Z
in questo caso la copia tutta [Edited by Mat71 4/26/2012 9:42 AM]
------------------------
 |
4/26/2012 4:15 PM |
|
| | | Post: 272 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Mat71, 26/04/2012 09.34:
Vorrei approfondire sempre di piu' la conoscenza del vba
se volessi cercare lo stesso valore in piu' colonne ?
copiare solo una parte della riga es. da A a Z
in questo caso la copia tutta
NoN ne esco piu' ....
Option Explicit
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Public Sub Copia_txt()
'PULISCI
Application.ScreenUpdating = False
Sheets("DATI").Select
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet 'Sheets("DATI") '
Set sh2 = Sheets("Grafico")
val1 = Trim(Format$([E5000]))
With sh1.Columns(5) 'esegue la ricerca nella colonna "Incontro" ...
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Trim(Format$(.Cells(i, 1).Value)) Then
conta = conta + 1
Range(Cells(i, 5), Cells(i, 16)).Select
Selection.Copy 'Destination:=sh2.Rows(conta + 1)
'posiziona prima cella libera
Sheets("Grafico").Select
With Worksheets("Grafico")
Dim lRiga As Long
lRiga = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(lRiga + 1, 1).Select
End With
ActiveSheet.PasteSpecial Format:=3, link:=1, DisplayAsIcon:=False, _
IconFileName:=False
End If
Next i
' MsgBox "Sono state copiate " & conta & " righe."
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
vorrei far cambiare questo valore ...
With sh1.Columns( 5)
in la prima volta 5 .. poi a seguire 22 .. 39
quindi ogni 17 ... fino al valore 260
in maniera tale da controllare tutte le colonne che mi interessano ...
e' possibile ...?oppure mi devo creare tante macro per ogni valore ?
grz [Edited by Mat71 4/26/2012 4:15 PM]
------------------------
 |
4/26/2012 10:32 PM |
|
| | | Post: 81 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Sei proprio uno di quelli che "l'appetito vien mangiando" eh?
Il problema della ricerca ripetuta è relativamente semplice.
Se la condizione è "cerca a partire dalla colonna 5 ogni 17 colonne fino a 260" la modifica è questa:
-aggiungi una nuova variabile long e chiamala perColonna (o come ti pare)
-fai quest'aggiunta al codice: for perColonna = 5 to 260 step 17 'ad ogni ciclo perColonna aumenta di 17
With sh1.Columns(perColonna) 'esegue la ricerca in una colonna
...
End With
Next perColonna
Un piccolo appunto; se devi solo copiare un Range non c'è bisogno di scrivere Range(Cells(i, 5), Cells(i, 16)).Select
Selection.Copy Destination:=sh2.Rows(conta + 1) è sufficiente Range(Cells(i, 5), Cells(i, 16)).Copy Destination:=sh2.Rows(conta + 1)
Ciao.  [Edited by Zer0kelvin 4/27/2012 1:31 AM] __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
4/28/2012 6:28 AM |
|
| | | Post: 273 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Non funziona ... sbaglio qualcosa ?
Public Sub Copia_testo()
'PULISCI
Application.ScreenUpdating = False
Sheets("DATI").Select
Dim conta As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet 'Sheets("DATI") '
Set sh2 = Sheets("Grafico")
val1 = Trim(Format$([E5000]))
For perColonna = 5 To 260 Step 17 'ad ogni ciclo perColonna aumenta di 17
With sh1.Columns(perColonna) 'esegue la ricerca in una colonna
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Trim(Format$(.Cells(i, 1).Value)) Then
conta = conta + 1
Range(Cells(i, 5), Cells(i, 16)).Copy Destination:=sh2.Rows(conta + 1)
'posiziona prima cella libera
Sheets("Grafico").Select
With Worksheets("Grafico")
Dim lRiga As Long
lRiga = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(lRiga + 1, 1).Select
End With
ActiveSheet.PasteSpecial Format:=3, link:=1, DisplayAsIcon:=False, _
IconFileName:=False
End If
Next i
' MsgBox "Sono state copiate " & conta & " righe."
End With
Next perColonna
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
il 2 e 16 a sua volta si devono incrementare di 17 ...
sempre perche cabio colonna ..grazie
[Edited by Mat71 4/28/2012 6:29 AM]
------------------------
 |
4/28/2012 3:00 PM |
|
| | | Post: 88 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
il 2 e 16 a sua volta si devono incrementare di 17 ...
Penso che tu volessi dire 5 e 16, dal momento che sono i due riferimenti di colonna nella parte che hai evidenziato.
Visto che la colonna cambia, in base al valore di perColonna, è ovvio che anche questi dovranno variare assieme a perColonna; il primo è uguale a perColonna (è la stessa colonna in cui fai la ricerca), il secondo è uguale a perColonna+11!!! __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
5/2/2012 9:39 AM |
|
| | | Post: 274 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 28/04/2012 15.00:
il 2 e 16 a sua volta si devono incrementare di 17 ...
Penso che tu volessi dire 5 e 16, dal momento che sono i due riferimenti di colonna nella parte che hai evidenziato.
Visto che la colonna cambia, in base al valore di perColonna, è ovvio che anche questi dovranno variare assieme a perColonna; il primo è uguale a perColonna (è la stessa colonna in cui fai la ricerca), il secondo è uguale a perColonna+11!!!
Ecco la macro modificata .. ma nn funziona ... :(
Option Explicit
Option Compare Text ' così Excel non fa più distinzione tra maiuscole e minuscole
Public Sub Copia_testo()
Application.ScreenUpdating = False
Sheets("DATI").Select
Dim conta, perColonna As Long, i As Long, val1 As Variant
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = ActiveSheet 'Sheets("DATI") '
Set sh2 = Sheets("Grafico")
val1 = Trim(Format$([E5000]))
For perColonna = 5 To 430 Step 17 'ad ogni ciclo perColonna aumenta di 17
With sh1.Columns(perColonna) 'esegue la ricerca in una colonna
conta = 0
For i = 2 To .End(xlDown).Row
If val1 = Trim(Format$(.Cells(i, perColonna).Value)) Then
conta = conta + 1
Range(Cells(i, perColonna), Cells(i, perColonna + 11)).Copy Destination:=sh2.Rows(conta + 1)
'posiziona prima cella libera
Sheets("Grafico").Select
With Worksheets("Grafico")
Dim lRiga As Long
lRiga = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(lRiga + 1, 1).Select
End With
ActiveSheet.PasteSpecial Format:=3, link:=1, DisplayAsIcon:=False, _
IconFileName:=False
End If
Next i
' MsgBox "Sono state copiate " & conta & " righe."
End With
Next perColonna
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
------------------------
 |
5/2/2012 2:43 PM |
|
| | | Post: 102 | Registered in: 4/24/2004
| Location: TERAMO | Age: 52 | Junior User | |
|
Ciao Mat.
Innanzitutto dovresti essere più specifico riguardo a "non funziona".
Non avevo guardato le tue modifiche, ma ho trovato alcune cose che io eviterei di fare:
1) mettere delle istruzioni With nidificate
2) mettere un'istruzione Dim all'interno di un ciclo
3) usare il metodo Select.
Comunque fammi capire meglio cosa non funziona. __________________________
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Se dai ad un uomo un pesce lo avrai sfamato per un giorno; se gli insegni a pescare lo avrai sfamato per sempre!
(Versione excel:2007/2010)
...e leggete il *°#@ç[@ manuale! |
5/2/2012 3:26 PM |
|
| | | Post: 275 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 02/05/2012 14.43:
Ciao Mat.
Innanzitutto dovresti essere più specifico riguardo a "non funziona".
Non avevo guardato le tue modifiche, ma ho trovato alcune cose che io eviterei di fare:
1) mettere delle istruzioni With nidificate
2) mettere un'istruzione Dim all'interno di un ciclo
3) usare il metodo Select.
Comunque fammi capire meglio cosa non funziona.
non funziona in quato se nella prima colonna di ricerca nn trova la squadra .. mi da 0 righe copiate ...
come fargli capire che deve controllare altre colonne e nn fermarsi alla prima ?
....
------------------------
 |
5/2/2012 3:44 PM |
|
| | | Post: 276 | Registered in: 2/2/2006
| Location: ROMA | Age: 42 | Junior User | |
|
Zer0kelvin, 02/05/2012 14.43:
Ciao Mat.
Innanzitutto dovresti essere più specifico riguardo a "non funziona".
Non avevo guardato le tue modifiche, ma ho trovato alcune cose che io eviterei di fare:
1) mettere delle istruzioni With nidificate
2) mettere un'istruzione Dim all'interno di un ciclo
3) usare il metodo Select.
Comunque fammi capire meglio cosa non funziona.
ti allego file di esempio
ESEMPIO.xlsm
..cosi forse mi capisci cosa voglio dalla macro
e per questo mi serve il seziona range
quindi in ogni gruppo
esempio
A dove cercare la squadra e se la trova
copia range A-P e la incolla in grafico
cosi a seguire
squadra in R se la trova seleziona range R-AG
e la incolla sempre a seguire nella prima cella libera in grafico
questo fino alla colonna AAM-ABB ..
si puo' fare ?
grazie
p.s. ho risolto inserendo la lista in un unica colonna ma se fosse possibile in piu' colonne sarebbe meglio
[Edited by Mat71 5/3/2012 12:08 PM]
------------------------
 |