come promesso eccoti un pao di soluzioni:
con questa macro descritta nel foglio1, ogni volta che si esegue un doppio click su una cella
della colonna "A" vengono selezionatetutte le celle della stessa riga fino alla colonna "H"
e vengono copiate nel "Foglio2" alla prima riga vuota della colonna "A"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Set zona1 = Range(Cells(2, 1), Cells(2, 1).End(xlDown))
If Not Intersect(Target, zona1) Is Nothing Then
Range(ActiveCell, ActiveCell.Offset(0, 7)).Select
Selection.Copy
Sheets("foglio2").Select
riga = 2 ' definisce la riga da cui inizia a cercare
While Sheets("foglio2").Cells(riga, 1).Value () ""
riga = riga + 1
Wend ' quando trova la prima riga vuota la seleziona e incolla la selezione
Worksheets("foglio2").Cells(riga, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
ActiveSheet.Range("a1").Select
Sheets("foglio1").Activate
Range("a1").Select
Application.ScreenUpdating = True
End Sub
quest'altro esempio un pochino più articolato, viene impiegata una Userform con una Combobox per selezionare il record da trasferire recuperato da quelli presenti in colonna A.
Creare sul foglio un pulsante che richiama la Userform e descriverci la seguente macro:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
creare una Userform con una combobox ed un pulsante.
descrivere la seguente macro per fare in modo che la textbox si carichi dei valori presenti nella colonna A
Private Sub UserForm_activate()
For n = 2 To 250
If Range("a" & n) () "" Then
ComboBox1.AddItem Range("a" & n)
End if
Next
End Sub
alla Combobox descrivere la seguente macro che in pratica esegue le istruzioni come nel primo esempio
Private Sub ComboBox1_click()
Application.ScreenUpdating = False
Set zona1 = Range(Cells(2, 1), Cells(2, 1).End(xlDown))
For Each cl In zona1
If cl = ComboBox1.Text Then
cl.Select
Range(ActiveCell, ActiveCell.Offset(0, 7)).Select
End If
Next
Selection.Copy
Sheets("foglio2").Select
riga = 2
While Sheets("foglio2").Cells(riga, 1).Value () ""
riga = riga + 1
Wend
Worksheets("foglio2").Cells(riga, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Set zona1 = Nothing
Range("a1").Select
Sheets("foglio1").Select
Range("a1").Select
Application.ScreenUpdating = True
ComboBox1.text = ""
End Sub
al Pulsante che serve per chiudere e scaricare la Userform, assegnare il seguente codice:
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
per i calcoli che devi eseguire sul foglio B bisognerebbe sapere come è strutturato il tuo lavoro
se non sei molto pratico nell'uso delle userform e ti può essere utile un file d'esempio chiedi pure.
saluti
Andrea ( giap1953 chiocciola libero.it)
ps. come al solito attento che i simboli di diverso sono state tradotte con le parentesi tonde
Edited by - a10n11 on 07/15/2005 15:22:40