Condividi:        

[Excel] Selezione dinamica righe

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Selezione dinamica righe

Postdi gra » 01/06/06 13:54

Ciao, ho bisogno di selezionare una riga in modo dinamico, a seconda del valore che inserisco e devo ottenere il numero della riga
come posso fare?
grazie

*** Ho tolto il tuo 2° post e sistemato il titolo
gra
Newbie
 
Post: 2
Iscritto il: 01/06/06 13:51

Sponsor
 

Postdi Anthony47 » 01/06/06 14:19

Rapidamente: guarda nell' help di excel le funzioni "Indiretto" e "Scarto"; ambedue ti consentono di fare quello che vorresti.

Comunque siamo qui. Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi gra » 01/06/06 14:35

è MEGLIO CHE SPIEGO IL VERO PROBLEMA:
allora ho foglio1 in cui ho una tabella in cui sono visualizzati una serie di campi (Codice cliente, nome, azienda etc)e relativi valori (sono più di 100)

ho un altro foglio in cui inserisco un particolare valore di codice cliente e mi carica tutti i valori relativi alla riga corrispondente a codice cliente
voglio poter modificare singolarmente ogni valore in questo foglio e salvarli nell'altro..
chiaro?
gra
Newbie
 
Post: 2
Iscritto il: 01/06/06 13:51

Postdi Alexsandra » 01/06/06 15:01

E' un'anagrafica quella che vuoi fare
e relativi valori
questi valori sono sempre legati al cliente (banca,pagamento etc..)
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 02/06/06 01:37

gra ha scritto:....chiaro?

Certamente piu' di prima.

Quindi, hai un Foglio1 con diciamo una anagrafica Cliente disposta in orizzontale (N colonne su 1 riga); vuoi poter richiamare i dati anagrafici di un certo Cliente ed eventualmente cambiare qualche parametro, utilizzando allo scopo un Foglio2. Cominciamo a rinominare Foglio1 in “Anagrafica” e Foglio2 in “Work”

Per semplicita’ supponiamo che su Anagrafica l’ anagrafica sia fatta su 4 colonne (A-B-C-D), e riga 1 sia usata per le intestazioni; la “chiave” di accesso sia la colonna A; il processo e’ comunque valido per un numero indefinito di colonne.

Prepariamo Work: anche qui Riga 1 contiene le intestazioni che compiliamo cosi’ (tra VIRGOLETTE i testi, attenzione a copiare le formule dal crt = in avanti):
A1: “Codice” (sara’ la chiave di ricerca nell’ anagrafica); B1: “Riga”; C1 e D1: vuote; E1: =Anagrafica!A1 poi la stessa formula si copia da E1 su F1-G1-H1 in modo che su E1:H1 compaiano le stesse intestazioni del foglio Anagrafica.

Riga 2: A2 la lasciamo vuota; B2 =CONFRONTA(Work!A2;Anagrafica!A:A;0) C2 e’ vuota; D2: “Valori Attuali -->” E2 =SCARTO(Anagrafica!A1;$B$2-1;0) poi si copia da E2 su F2-G2-H2.
A QUESTO PUNTO, se in A2 si digita un codice valido (esistente in colonna A di Anagrafica), B2 conterra’ il numero di riga di quel codice e le celle E2:H2 presenteranno i valori che al momento sono in anagrafica per quel codice. Inoltre alla cella B2 assegnare il nome RNum (Menu ->Inserisci ->Nome ->Definisci)

Prepariamo un’ area di modifica, su riga 7:
In D7: “Modifiche -->” , poi selezioniamo le celle E7:H7 e assegniamole il nome NewVal (Menu ->Inserisci ->Nome ->Definisci) e magari le coloriamo a piacere (tipo Giallo chiaro) per metterle in evidenza. Infine in I7 mettiamo =COLONNE(NewVal)-CONTA.SE(E7:H7;"") e assegniamo il nome CCount. Questo contatore servira’ per contare quanti campi sono stati modificati.

Componiamo infine la nuova riga per l’ anagrafica su riga 12:
In D12: “Nuovi Valori -->” in E12 =SE(E7="";E2;E7) poi si copia da E12 su F12-G12-H12
Suggerisco anche di aggiungere questa formattazione condizionale sulle celle E12:H12
-su Condizione 1 scegliere “la formula e’ “, e nel campo formula scrivere =CCount=0 ; selezionare poi Formato, Tab “Carattere” e scegliere un colore tipo grigio 40%; chiudere con Ok e Ok. In questo modo se non sono state apportate modifiche le righe di Nuovi Valori sono in grigio leggero, a indicare che non ci sono modifiche da registrare.

Penultima operazione, memorizzare la seguente macro:
Codice: Seleziona tutto
Sub EditAnagr()
'Sposta in Anagrafica i dati modificati, se ci sono state modifiche
    If Range("CCount").Value = 0 Then GoTo Skippa:
    Sheets("Anagrafica").Select
'   OFFR = Range("RNum").Value - 1
'   Range("A1").Offset(OFFR, 0).Select
    Range("A1").Offset(Range("Rnum").Value - 1, 0).Select
    Range("NewLine").Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Offset(Range("Rnum").Value - 1, 0).Select
Skippa:
    Sheets("Work").Select
    Application.Goto Reference:="NewVal"
    Selection.ClearContents
    Range("A2").Select
End Sub

Ultima operazione, su foglio Work:
-creare un pulsante, associargli la macro EditAnagr

Modalita’ d’ uso:
sul foglio Work, introdurre in A2 il codice da elaborare; introdurre su E2:H2 le eventuali modifiche, salvarle con la macro attivata dal pulsante.

E’ stato molto piu’ semplice farlo che scriverlo…. Ovviamente va provato dopo aver fatto 2 copie di backup dell’ anagrafica.

Facci sapere se rispecchia i bisogni; se SI puoi “lavorare” su Work, ad esempio per proteggere tutte le celle eccetto quelle dell’ area “Modifiche” e “Codice” e altri lavori di presentazione.

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Selezione dinamica righe":


Chi c’è in linea

Visitano il forum: Nessuno e 26 ospiti