Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Formula/macro excel Opzioni
wolmer
Inviato: Thursday, July 14, 2005 8:58:20 PM
Rank: Member

Iscritto dal : 12/28/2001
Posts: 6
Ciao, causa problemi di salute ho la necessità di creare un programmino per regolamentare l' alimentazione.
Per farlo ho mi serve il tuo aiuto per sviluppare una formula/macro, ecco la richiesta:
Consideriamo per la spigazione l'utilizzo di 2 tabelle A e B, situate in due fogli di excel diversi, ma nella stessa cartella.
La prima tabella (A) è composta da 15 righe e 9 colonne e tutte le celle sono vuote.
La seconda tabella (B) è composta da 50 righe e 9 colonne, nella prima colonna di ogni riga la cella contiene il nominativo di un prodotto , nelle altre 8
colonne della stessa riga un dato numerico decimale (es.23,7).
La mia esigenza è di ottenere una "formula" che mi consenta quando clicco sul nome del prodotto nella prima colonna della tabella B, sia il nome stesso che i dati
numerici contenuti nelle altre 8 colonne della stessa riga vengano copiati nella prima riga e nelle rispettive 9 colonne della tabella A.
Cliccando poi sul nome di un altro prodotto, sempre della tabella B, sia il nome che i dati numerici vengano copiati,ma questa volta nella seconda riga della tabella A,e così via.
Ti ringrazio anticipatamente per quanto potrai fare per aiutarmi.
Grazie
Galli Massimo


Sponsor
Inviato: Thursday, July 14, 2005 8:58:20 PM

 
a10n11
Inviato: Thursday, July 14, 2005 10:51:52 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
domanda?
I dati una volta trasferiti della tabella A nella Tabella B restaranno sempre nella tabella B o questa tabella virne di volta in voltra ripulita?le soluzioni possono essere diverse con l'uso di macro.
1° sfruttare l'evento DoubleClick sulla cella interessata e far selezionare tutta la riga di pertinenza e copiarla nella tabella B.
La secondo quella che mi sembra più pertinente è di creare una combobox sul foglio dove selezionare il contenuto della riga e da codice trasferire tutto il suo contenuto alla tabella B.
stasera per ovvi motivi di tempo non riesco a mandarti gli esempi se puoi aspettare vedo di poterti mandare qualcosa entro la giornata di domani.
saluti
Andrea

Edited by - a10n11 on 07/15/2005 00:35:01

wolmer
Inviato: Friday, July 15, 2005 3:20:00 AM
Rank: Member

Iscritto dal : 12/28/2001
Posts: 6
Ciao e grazie di avermi risposto!
Vedrò di essere più chiaro,la prima tabella (A) altro non è che un database contenente il nome di un alimento (1a colonna) e altri 8 valori calorici ad esso abbinati(le altre otto colonne sulla stessa riga).La tabella è composta da circa 150 righe.Nella seconda tabella da me creata, vengono calcolati e sommati automaticamente i valori delle otto colonne della tabella B immessi,questo per visualizzare alcuni parametri eventualmente da modificare cambiando la tipologia dell'alimento.Una volta raggiunto il risultato ottimale i dati della tabella B vengono cancellati al fine di riutilizzare la tabella il giorno successivo.Attualmente questo lo faccio selezionando la riga interessata del database e copiando il contenuto in ordine consecutivo nella tabella B.Operazione piuttosto macchinosa!Personalmente non sò cosa sia un combobox,ma credo che la tua seconda proposta sia quella giusta!A mia "intuizione"credo che bisogna inserire la macro o altro sulla prima colonna del database dove sono contenuti i nomi,quindi quando ci clicco sopra lei fà il resto.Mi permetto ricordarti che la scrittura dei dati nella tabella A deve avvenire in modo sequenziale partendo dalla prima riga della tabella,indipendentemente dall'ordine in cui i dati sono collocati nel database.Spero di essere stato un pò più chiaro,in ogni caso per ogni domanda sono ovviamente a disposizione.Ho tentato di inserire nel topic un allegato di excel con l'impostazione delle due tabelle,ma i file xls non vengono accettati.Se hai un consiglio sù come fare è ben accetto!Grazie ancora.
Massimo (wolmer@inwind.it)
dead
Inviato: Friday, July 15, 2005 8:50:39 AM

Rank: AiutAmico

Iscritto dal : 9/20/2004
Posts: 1,597
Mi permetto di suggerire una soluzione alternativa che l'amico a10n11 saprà sicuramente implementare:
- una sola tabella (quella da 50 righe)
- a sinistra della prima colonna inserire una colonna di checkbox
- in alto nel foglio (in una parte bloccata con "blocca riquadri"):
A) una riga con il risultato della somma di tutte le righe che hanno la checkbox selezionata
B)un bottone tipo on/off che cliccandolo applica e toglie un filtro che visualizza solo le righe selezionate
C) magari anche un grafico cumulativo a barre che mostra l'apporto di ogni addendo alla somma

in questa maniera, selezionando e deselezionando i vari alimenti, nella parte superiore del foglio vedresti il risultato della tua selezione in tempo reale. Quando poi sei soddisfatto applichi il filtro ed ecco pronto il tuo menu giornaliero.

Poi uno potrebbe anche estendere il concetto, memorizzando le "soluzioni" trovate in un altro(i) foglio(i) in modo da crearsi una serie di menu pronti all'uso.


Sono cosi avanti che quando guardo indietro vedo il futuro.
wolmer
Inviato: Friday, July 15, 2005 11:21:50 AM
Rank: Member

Iscritto dal : 12/28/2001
Posts: 6
Mi sembra di "intuire" che unendo entrambe le vs. capacità......il risultato sia allle porte! L'unione fà la forza!! GRAZIE.
P.S.Se potessi avere il vs.indirizzo email,vi invierei il file in originale in modo da semplificarvi la vita.
<img src=icon_smile_wink.gif border=0 align=middle>
dead
Inviato: Friday, July 15, 2005 12:30:03 PM

Rank: AiutAmico

Iscritto dal : 9/20/2004
Posts: 1,597
se ho tempo ci provo:
av250866-chiocciola-ngi.it


Sono cosi avanti che quando guardo indietro vedo il futuro.
a10n11
Inviato: Friday, July 15, 2005 3:17:26 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
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

Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.