Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[excel] formule e selezione

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] formule e selezione

Postdi gio969 » 04/09/14 10:54

buongiorno a tutti,
ho un foglio excel con inserito in un certo numero di colonne e righe delle formule che si attivano se in certe celle inserisco valori (es.: =SE(Foglio1!A2="";"";SINISTRA(Foglio1!A2;TROVA(" ";Foglio1!A2)-1)) ). generalmente compilo il foglio per 100 righe perchè non so mai quanti saranno i dati che inserirò (ogni giorno possono cambiare).
il problema è questo, se le righe che sto utilizzando sono meno di 100 e cerco di selezionarle con ctrl+shift+* excel mi andrà a selezionare anche quelle vuote (che contengono le formule "nascoste") e quando vado ad incollare altrove (con incolla speciale--valori) si porta dietro anche quelle celle che, visivamente sono vuote, ma in realtà, anche dopo averle incollate, sembrano essere piene.
come posso ovviare al problema? forse sbaglio a utilizzare il se con "";"" ?
grazie a tutti anticipatamente
gio969
Utente Junior
 
Post: 40
Iscritto il: 31/05/12 11:20

Sponsor
 

Re: [excel] formule e selezione

Postdi Flash30005 » 04/09/14 23:10

ma una macro andrebbe bene lo stesso?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [excel] formule e selezione

Postdi Anthony47 » 04/09/14 23:40

Le celle bianche ma non vuote sono una tortura...
Puoi mettere le formule solo fino alla riga che ti interessa con una macro del tipo
Codice: Seleziona tutto
Sub FormulaExtend()
Range(Range("E3"), Range("E3").End(xlDown)).ClearContents
'Range("E2").Formula = "=Sum(B2:D2)"      '*** Vedi testo
Range("E2").Copy Destination:=Range(Range("D3"), Range("D3").End(xlDown)).Offset(0, 1)
End Sub
Questa lavora sull' elenco di colonna D, da D2 in avanti, e copia la formula presente in E2 verso il basso per l'altezza dell' elenco presente in colonna D; volendo la stessa macro puo' essere usata per inserire una formula, come ad esempio fatto con la linea marcata "***" (che e' disabilitata, nel listato precedente).

Oppure, se il problema e' che non riesci a calcolare correttamente l' ultima riga usata di una colonna (ad esempio per determinare dove posizionare nuovi dati che vuoi accodare), allora puoi calcolare l' ultima riga usata con una istruzione del tipo
Codice: Seleziona tutto
LastM = Evaluate("=MAX((D1:D2000<>"""")*(ROW(D1:D2000)))")
(invece del classico End(XlUp) o similari)
Nell' esempio, il codice calcola l' ultima riga dell' intervallo D1:D2000 che ha un contenuto diverso da "niente"

L' alternativa alle macro e' cancellare le formule superflue.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel] formule e selezione

Postdi gio969 » 08/09/14 09:28

grazie flash anche una macro andrebbe bene.

anthony grazie anche a te per le tue rapide 2 soluzioni. la prima l' ho capita, però è un pochino macchinosa perchè le colonne che contengono le formule sono molte.. . mentre la seconda che mi hai proposto nn l' ho capita (colpa mia xchè nn sono molto esperto di vba:) ).
stamattina ho avuto un' illuminazione. poichè i dati li incollo nel foglio1 (il foglio1 nn contiene formule. le formule per i calcoli le metto sempre in altri in altri fogli) e su tale foglio conosco esattamente il numero delle righe piene, potrei in teoria calcolare esattamente l'area da selezionare nei fogli che contengono le formule.
mi aiutate a farlo in vba?
grazie ancora a tutti x l'aiuto
ciao buona giornata

volevo aggiungere che il numero delle righe lo ricavo in una cella che conta le nn vuote, mentre le colonne sono sempre le stesse
gio969
Utente Junior
 
Post: 40
Iscritto il: 31/05/12 11:20

Re: [excel] formule e selezione

Postdi Anthony47 » 09/09/14 00:40

volevo aggiungere che il numero delle righe lo ricavo in una cella che conta le nn vuote, mentre le colonne sono sempre le stesse
Questo chiarimento supera la "seconda proposta" che ti avevo fatto, in quanto il calcolo lo fai con formula e non con vba (anche se non capisco, operativamente, come procedi).
Comunque puoi calcolare quale e' l' ultima riga di una colonna contenente un valore reale con una formula del tipo =MAX((L'IntervalloDaValutare<>"")*(RIF.RIGA(L'IntervalloDaValutare))), ad esempio
Codice: Seleziona tutto
=MAX((A1:A1000<>"")*(RIF.RIGA(A1:A1000)))
Da confermare con Contr-Maiusc-Enter, non il solo Enter.

Per altre colonne, o numero di righe potenzialmente superiore alla 1000, adatta la formula.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel] formule e selezione

Postdi gio969 » 10/09/14 09:54

finalmente riesco a ricollegarmi!! da 2 giorni che sembra nn funzionare il sito

anthony grazie ancora per il tuo interessamento sei sempre molto gentile.
anche io mi sono dato da fare e in questi 2 giorni sono riuscito a trovare righe in vba che sono riuscito ad adattare alle mie esigenze riporto il vba qui magari potrebbe essere utile anche a altre persone:
[code]
sub seleziona_cella()
Sheets("foglio3").Select
Dim numero_riga As String
x = Sheets("foglio3").Cells(1, 8).Value

Sheets("foglio3").Select
Cells(x, 1).Select
Range(Selection, Selection.End(xlUp)).Select


con questo metodo è possibile selezionare le sole celle piene della colonna A tralasciando quelle che in apparenza sembrano piene perchè contengono formule che si attivano solo in certi casi.
il principio di funzionamento è semplice, nella cella h1 ho inserito la formula conta.valori della colonna A che mi restituisce il n di righe piene. il codice vba, partendo dalla cella a1 si sposta verso il basso per il numero delle righe riportato appunto nella cella h1 e poi seleziona tutto verso l' alto. e voilà il gioco è fatto!!
gio969
Utente Junior
 
Post: 40
Iscritto il: 31/05/12 11:20


Torna a Applicazioni Office Windows


Topic correlati a "[excel] formule e selezione":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti