excel vba selezionare righe
Hai un problema con Excel? 
excel vba selezionare righe
di nabonedo (utente non iscritto) data: 01/11/2012 09:05:07
Ciao,
ho un problema.
Mi servirebbe una macro che quando seleziono una riga nel foglio1 mi
sposta il contenuto in determinate celle del foglio2.
le righe del foglio 1 sono un centinaio circa, quindi presumo che debba
esserci un ciclo.
Saluti e grazie.
di HarryBosch data: 01/11/2012 10:36:18
Ciao Nabonedo
ti serve una macro che sposti i dati del foglio1 nel foglio2, fin qua ok; però non è chiaro in che modo:
- "quando seleziono una riga..": in questo caso, ti posizioni su una cella della riga, ed essa si copia (quindi, una riga alla volta, solo quando ci clicchi sopra);
- "..presumo debba esserci un ciclo": questa è un'altra situzione: lanci la macro, passi tutte le righe del foglio1, e quelle che rispettano un determinato criterio, vengono ricopiate nel foglio2
Quale delle due situazioni vorresti realizzare? Versione Excel che utilizzi? Conosci qualcosa del vba?
di Vecchio Frac data: 01/11/2012 11:07:56
A quanto dice HarryBosch aggiungo come alternativa:
- dopo aver pensato bene esattamente a quel che devi fare, passo per passo (magari te lo scrivi su un foglio),
- avvia un registratore di macro,
- fai esattamente le operazioni che faresti manualmente, evitando operazioni superflue che verrebbero registrate,
- controlla il codice,
- correggi e ripulisci il codice.
excel vba selezionare righe
di nabonedo (utente non iscritto) data: 01/11/2012 14:04:43
Ciao
Volevo ringraziarvi per la disponibilità
Ad HarryBosch:
mi spiego meglio:
ho un db con una serie d'informazioni nel foglio1, diciamo 100 righe
popolate.
Mi servirebbe una macro che quando seleziono tutta la riga le informazioni della riga stessa
vadano in determinate celle del foglio2; seleziono un'altra riga e le informazioni di quest'ultima si sotituiscono
a quelle precedenti nel foglio2..e così via.
Saluti.
di nabonedo (utente non iscritto) data: 01/11/2012 23:16:51
c'è qualcuno che mi aiuta?
di HarryBosch data: 02/11/2012 00:20:15
Allora, da quanto ho capito, nello stesso momento in cui selezioni una riga del foglio1 i dati della stessa si devono copiare in determinate celle del foglio2.
Prova la routine che ti scrivo qua sotto: se selezioni una cella della colonna A oppure la riga intera, tutti i dati della riga selezionata si sposteranno nella riga1 del foglio2. Poi ti si aprirà il foglio2.
Il codice va inserito nel modulo del Foglio1 e non in un modulo normale.
Resta da capire in quali celle del foglio2 questi dati si devono eventualmente spostare. Se spieghi esattamente vediamo di sistemare.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
On Error Resume Next
Target.EntireRow.Copy Destination:=Sheets("Foglio2").[a1]
'per spostarsi sul foglio dove copi la riga dopo la selezione
Sheets("Foglio2").Select
End Sub
|
di nabonedo (utente non iscritto) data: 02/11/2012 08:54:45
Ciao HarryBosch,
di seguito la corrispondenza campi foglio1/foglio2:
foglio1 foglio2
a1 b1
b1 b2
c1 g3
d1 c3
e1 a3
f1 a4
g1 d4
Ciao e grazie
di HarryBosch data: 02/11/2012 13:15:14
Ciao nabonedo
non hai più detto la versione Excel che usi.
Ti allego un file Excel versione 2007; basta selezionare una riga oppure una cella della colonna A e i dati si sposteranno sul foglio2 nelle posizioni che hai indicato.
Verifica se effettivamente ottieni il risultato che ti aspetti
di nabonedo (utente non iscritto) data: 02/11/2012 15:02:11
excel 2003
Saluti
di HarryBosch data: 02/11/2012 20:07:59
Inserisci il codice sotto nel modulo del Foglio 1.
Solo nel momento in cui selezioni la riga intera, i dati della relativa riga verranno copiati nel foglio2 che verrà anche aperto.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Integer
If Intersect(Target, Columns(256)) Is Nothing Then Exit Sub
r = Target.Row
With Sheets("Foglio2")
.[b1] = Cells(r, 1)
.[b2] = Cells(r, 2)
.[g3] = Cells(r, 3)
.[c3] = Cells(r, 4)
.[a3] = Cells(r, 5)
.[a4] = Cells(r, 6)
.[d4] = Cells(r, 7)
.Select
End With
End Sub
|
di nabonedo (utente non iscritto) data: 03/11/2012 00:07:12
Grazie HarryBosch.
E' proprio quello che mi serviva.
Saluti
di Vecchio Frac data: 03/11/2012 17:53:05
Allora puoi spuntare la casella "Spunta se risolta" in una nuova risposta, grazie.
di nabonedo (utente non iscritto) data: 04/11/2012 00:21:02
Ciao e grazie
Vuoi Approfondire?