New Thread
Reply
Log In
Register
Previous page | 1 2 | Next page
Print | Email Notification    
Author
Facebook   Cerca valore ed archvia Last Update: 5/7/2012 9:09 AM
4/18/2012 10:10 AM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 10:58 AM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 256
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 11:12 AM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 257
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 12:45 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 258
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 1:10 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 259
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

...

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 1:27 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 260
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 1:38 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 261
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re: Re:
Mat71, 18/04/2012 13.34:



nn va ...

nn puoi fare una verifica sul file execel grazie




SCUSA SCUSAAA ...

FUNZIONNNAAAAAAAAAAAAAAAA

GRAZIEEE


------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 2:11 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 263
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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?

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/18/2012 6:32 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 264
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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]

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/19/2012 1:07 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 266
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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 ...

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/23/2012 8:52 AM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 269
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re: Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/23/2012 2:49 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 270
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/26/2012 9:34 AM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 271
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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]

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/26/2012 4:15 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 272
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re: Re:
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]

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/26/2012 10:32 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 273
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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]

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
4/28/2012 3:00 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 274
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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


------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
5/2/2012 2:43 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
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
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 275
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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 ?

....

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
5/2/2012 3:44 PM
 
Email
 
User Profile
 
Modify
 
Delete
 
Quote
Post: 276
Registered in: 2/2/2006
Location: ROMA
Age: 42
Junior User
Re:
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]

------------------------
Image and video hosting by TinyPic Image and video hosting by TinyPic
Admin Thread: | Close | Move | Delete | Modify | Email Notification Previous page | 1 2 | Next page
New Thread
Reply

Excel Forum | Search | Log In | Log Out | Register | Admin
Create your free community and forum! Register to FreeForumZone
FreeForumZone [v.3.4.4] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 10:43 PM. : Printable | Mobile
Copyright © 2000-2013 FreeForumZone snc - www.freeforumzone.com