Condividi:        

se a1=G allora macro1, se b1=N allora macro2

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

se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 10/12/13 12:52

Problem.
Grazie a Flash ho risolto il problema con select case, di far partire delle macro quando in un menù a tendina seleziono una determinata voce.
Il problema è che quei comandi non vanno bene invece quando in una cella compare il risultato, per esempio, G. Ovvero se in una cella (a1) compare come risultato G vorrei far martire la macro1 e/o se nella cella b1 compare come risultato N vorrei che partisse la macro2. I due eventi possono avvenire insieme ovvero può comparire solo G in a1, o solo N in b1 oppure in contemporanea possono comparire sia G in a1 che N in b1 e perciò dovrebbero partire entyrambe le macro.
Perso in un bicchiere d'acqua presumo! Ma sono proprio ignorante di VBA. Qualcuno abbia pietà!
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Sponsor
 

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 10/12/13 14:00

Puoi indicare quali formule sono presenti nelle due celle, o con quale evento le due celle cambiano contenuto?
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 10/12/13 14:15

Anthony47 ha scritto:Puoi indicare quali formule sono presenti nelle due celle, o con quale evento le due celle cambiano contenuto?


Per es. in a1 del foglio1 compare G (A1 =for!C1) A sua volta la cella C1 della foglio for è il risultato della formula (risultante da altri calcoli) =SE(d2=E2;"G";"---")
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 10/12/13 16:31

Fabrx ha scritto:
Anthony47 ha scritto:Puoi indicare quali formule sono presenti nelle due celle, o con quale evento le due celle cambiano contenuto?


Per es. in a1 del foglio1 compare G (A1 =for!C1) A sua volta la cella C1 della foglio for è il risultato della formula (risultante da altri calcoli) =SE(d2=E2;"G";"---")




Cosa non va?

Private Sub WorkbookSheet_Change
If Range("A1").Value = "G" Then
Call macro1
End If
If Range("B1"). Value = "N" Then
Call Macro2
End If
End Sub
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 10/12/13 20:06

Il tentativo che stavo facendo e' di risalire a quale/quali cambiamento/i provoca nelle tue celle un risultato oppure un altro, ma capisco che rischiamo di andare troppo lontano.

Puoi usare l' evento Calculate, col codice che hai inserito nel tuo prototipo WorkbookSheet_Change, che quindi diventerebbe
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
If Range("A1").Value = "G" Then
Call macro1
End If
If Range("B1"). Value = "N" Then
Call Macro2
End If
End Sub


Lo svantaggio e' che con l' evento Calculate la macro parte spesso (qualsiasi ricalcolo nel tuo foglio), non solo quando le tue celle vengono modificate; vista la semplicita' della macro sono pero' sicuro che non noterai l' effetto, quindi usa l' evento Worksheet_Calculate con la macro scritta sopra.

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

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 10/12/13 23:45

Anthony47 ha scritto:Il tentativo che stavo facendo e' di risalire a quale/quali cambiamento/i provoca nelle tue celle un risultato oppure un altro, ma capisco che rischiamo di andare troppo lontano.

Puoi usare l' evento Calculate, col codice che hai inserito nel tuo prototipo WorkbookSheet_Change, che quindi diventerebbe
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
If Range("A1").Value = "G" Then
Call macro1
End If
If Range("B1"). Value = "N" Then
Call Macro2
End If
End Sub


Lo svantaggio e' che con l' evento Calculate la macro parte spesso (qualsiasi ricalcolo nel tuo foglio), non solo quando le tue celle vengono modificate; vista la semplicita' della macro sono pero' sicuro che non noterai l' effetto, quindi usa l' evento Worksheet_Calculate con la macro scritta sopra.

Ciao


Ho inserito il codice ma quando in A1 esce G e contemporaneamente in B1 esce N excel impazzisce e si blocca!
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 11/12/13 01:06

MAMMA MIA CHE LEGGEREZZA!
Aggiungi le due istruzioni marcate <<<<<:
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
Application.EnableEvents = False        '<<<<<<
If Range("A1").Value = "G" Then
   Call macro1
End If
If Range("B1"). Value = "N" Then
   Call Macro2
End If
Application.EnableEvents = True         '<<<<<<
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 11/12/13 11:17

Anthony47 ha scritto:MAMMA MIA CHE LEGGEREZZA!
Aggiungi le due istruzioni marcate <<<<<:
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
Application.EnableEvents = False        '<<<<<<
If Range("A1").Value = "G" Then
   Call macro1
End If
If Range("B1"). Value = "N" Then
   Call Macro2
End If
Application.EnableEvents = True         '<<<<<<
End Sub


Anthony47 scusa per la "leggerezza" ma la mia, sinceramente, è proprio ignoranza del VBA ecco perchè mi rivolgo al forum.
Grazie per la puntuale risposta. Con il nuovo codice mi pate solo la macro1 (quando il valore è G in a1) mentre quando il valore è N in B1 non parte la macro2.
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 11/12/13 15:17

MAMMA MIA CHE LEGGEREZZA!
La leggerezza e' stata di averti proposto una macro che (bastava rileggerla prima di pubblicarla) sarebbe entrata certamente in loop...

Se Macro2 non parte mai allora l' ipotesi piu' probabile e' che in B1 non ci sia esattamente "N"; prova questa variante:
Codice: Seleziona tutto
If Trim(Ucase(Range("B1").Value)) = "N" Then


Mi dovresti anche confermare che tutta la macro e' inserita nel "Modulo di codice" del foglio in di cui esamini A1 e B1.

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 11/12/13 15:42

Anthony47 ha scritto:
MAMMA MIA CHE LEGGEREZZA!
La leggerezza e' stata di averti proposto una macro che (bastava rileggerla prima di pubblicarla) sarebbe entrata certamente in loop...

Se Macro2 non parte mai allora l' ipotesi piu' probabile e' che in B1 non ci sia esattamente "N"; prova questa variante:
Codice: Seleziona tutto
If Trim(Ucase(Range("B1").Value)) = "N" Then


Mi dovresti anche confermare che tutta la macro e' inserita nel "Modulo di codice" del foglio in di cui esamini A1 e B1.

Fai sapere...



Grazie mille! Funziona! :) :) :)
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("E1").Value = "G" Then
   Call Macro1
End If
If Trim(UCase(Range("E3").Value)) = "N" Then
   Call Macro2
End If
Application.EnableEvents = True
End Sub


Ora provo ad aggiungere anche altre 2 celle e ti faccio sapere perchè tanto già so che scriverò nefandezze :oops: e non funzionerà :cry: !
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 11/12/13 15:54

Fabrx ha scritto:
Anthony47 ha scritto:
MAMMA MIA CHE LEGGEREZZA!
La leggerezza e' stata di averti proposto una macro che (bastava rileggerla prima di pubblicarla) sarebbe entrata certamente in loop...

Se Macro2 non parte mai allora l' ipotesi piu' probabile e' che in B1 non ci sia esattamente "N"; prova questa variante:
Codice: Seleziona tutto
If Trim(Ucase(Range("B1").Value)) = "N" Then


Mi dovresti anche confermare che tutta la macro e' inserita nel "Modulo di codice" del foglio in di cui esamini A1 e B1.

Fai sapere...



Grazie mille! Funziona! :) :) :)
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("E1").Value = "G" Then
   Call Macro1
End If
If Trim(UCase(Range("E3").Value)) = "N" Then
   Call Macro2
End If
Application.EnableEvents = True
End Sub


Ora provo ad aggiungere anche altre 2 celle e ti faccio sapere perchè tanto già so che scriverò nefandezze :oops: e non funzionerà :cry: !



A senso (più che altro, in francese antico, a culo!) ho completato così
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("E1").Value = "G" Then
Call Macro1
End If
If Trim(UCase(Range("E3").Value)) = "N" Then
Call Macro2
End If
If Trim(UCase(Range("F1").Value)) = "U" Then
Call Macro3
End If
If Trim(UCase(Range("F3").Value)) = "O" Then
Call Macro4
End If
Application.EnableEvents = True
End Sub

e funziona!!!!

Per non rimanere nella mia barbara ignoranza o quanto meno leggermente al di sopra dell'ignoranza profonda, se non ti è troppo di disturbo, potresti spiegarmi (terra terra) come mai con
If Trim(UCase(Range("Yz").Value)) = "X" Then
il codice funziona? Cosa vuol dire questa stringa di comando?
E invece cosa vuol dire e perchè servono:
Codice: Seleziona tutto
 Application.EnableEvents = False
e
Application.EnableEvents = True
??? Comunque grazie davvero!
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 12/12/13 00:14

L' arguzia premia...

If Trim(UCase(Range("Yz").Value)) = "X" Then

Trim elimina gli "spazi", UCase mette in "maiuscolo"; evidentemente prima Range("Yz") conteneva anche uno spazio poco visibile (es in coda) e il confronto falliva.

Application.EnableEvents = False /True

Abbiamo usato una "Sub Worksheet_Calculate", che e' una macro che scatta quando capita l' evento "Calculate=Ricalcola"; durante l' esecuzione di una macro il Ricalcola evidentemente scatta spesso, e questo causava il riavvio all' infinito della macro; con "EnableEvents = False" si inibiscono gli "eventi", fino alla successiva EnableEvents = True cioe' fino alla fine della macro.

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

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 12/12/13 11:04

Anthony47 ha scritto:L' arguzia premia...

If Trim(UCase(Range("Yz").Value)) = "X" Then

Trim elimina gli "spazi", UCase mette in "maiuscolo"; evidentemente prima Range("Yz") conteneva anche uno spazio poco visibile (es in coda) e il confronto falliva.

Application.EnableEvents = False /True

Abbiamo usato una "Sub Worksheet_Calculate", che e' una macro che scatta quando capita l' evento "Calculate=Ricalcola"; durante l' esecuzione di una macro il Ricalcola evidentemente scatta spesso, e questo causava il riavvio all' infinito della macro; con "EnableEvents = False" si inibiscono gli "eventi", fino alla successiva EnableEvents = True cioe' fino alla fine della macro.

Ciao


:) :) :)
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 12/12/13 16:03

Anthony47 ha scritto:L' arguzia premia...

If Trim(UCase(Range("Yz").Value)) = "X" Then

Trim elimina gli "spazi", UCase mette in "maiuscolo"; evidentemente prima Range("Yz") conteneva anche uno spazio poco visibile (es in coda) e il confronto falliva.

Application.EnableEvents = False /True

Abbiamo usato una "Sub Worksheet_Calculate", che e' una macro che scatta quando capita l' evento "Calculate=Ricalcola"; durante l' esecuzione di una macro il Ricalcola evidentemente scatta spesso, e questo causava il riavvio all' infinito della macro; con "EnableEvents = False" si inibiscono gli "eventi", fino alla successiva EnableEvents = True cioe' fino alla fine della macro.

Ciao



Come non detto! Ho scritto il codice funzionante nel Foglio1 dove c'era un altro il codice FUNZIONANTE e quest'ultimo non funziona più! Quando credo di aver finito è un miraggio!!!!! :cry:
I due codici separatamente funzionavano entrambi!! Perché non vanno più?

Questo ciò che ho nel Foglio 1 (codice 1) e (codice 2 ovvero quello relativo a questa discussione):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then GoTo SaltaC2
Select Case Target
Case "ITAc"
Macro1c0
Case "ENGc"
Macro2c0
Case "FRAc"
Macro3c0
Case "GERc"
Macro4c0
Case "SPAc"
Macro5c0
Case "PORc"
Macro6c0
Case "OLAc"
Macro7c0
Case "AUSc"
Macro8c0
Case "BELc"
Macro9c0
Case "GREc"
Macro10c0
Case "RUSc"
Macro11c0
Case "TURc"
Macro12c0
Case "CECc"
Macro13c0
End Select
Exit Sub

SaltaC2: If Target.Address <> "$C$5" Then GoTo SaltaC5
Select Case Target
Case "ITAo"
Macro1o0
Case "ENGo"
Macro2o0
Case "FRAo"
Macro3o0
Case "GERo"
Macro4o0
Case "SPAo"
Macro5o0
Case "PORo"
Macro6o0
Case "OLAo"
Macro7o0
Case "AUSo"
Macro8o0
Case "BELo"
Macro9o0
Case "GREo"
Macro10o0
Case "RUSo"
Macro11o0
Case "TURo"
Macro12o0
Case "CECo"
Macro13o0
End Select
Exit Sub

SaltaC5: If Target.Address <> "$D$2" Then GoTo SaltaD2
Select Case Target
Case "Atalanta"
Macro1ca
Case "Bologna"
Macro1cb
Case "Cagliari"
Macro1cc
Case "Catania"
Macro1cd
Case "Chievo"
Macro1ce
Case "Fiorentina"
Macro1cf
Case "Genoa"
Macro1cg
Case "Inter"
Macro1ch
Case "Juventus"
Macro1ci
Case "Lazio"
Macro1cl
Case "Livorno"
Macro1cm
Case "Milan"
Macro1cn
Case "Napoli"
Macro1co
Case "Parma"
Macro1cp
Case "Roma"
Macro1cq
Case "Sampdoria"
Macro1cr
Case "Sassuolo"
Macro1cs
Case "Torino"
Macro1ct
Case "Udinese"
Macro1cu
Case "Verona"
Macro1cv
Case "Arsenal"
Macro2ca
Case "Aston"
Macro2cb
Case "Cardiff"
Macro2cc
Case "Chelsea"
Macro2cd
Case "Crystal"
Macro2ce
Case "Everton"
Macro2cf
Case "Fulham"
Macro2cg
Case "Hull"
Macro2ch
Case "Liverpool"
Macro2ci
Case "M City"
Macro2cl
Case "M UTD"
Macro2cm
Case "Newcastle"
Macro2cn
Case "Norwich"
Macro2co
Case "Southampton"
Macro2cp
Case "Stoke"
Macro2cq
Case "Sunderland"
Macro2cr
Case "Swansea"
Macro2cs
Case "Tottenham"
Macro2ct
Case "WestBrom"
Macro2cu
Case "WestHam"
Macro2cv
Case "Ajaccio"
Macro3ca
Case "Bastia"
Macro3cb
Case "Bordeaux"
Macro3cc
Case "EvianTG"
Macro3cd
Case "Giungamp"
Macro3ce
Case "Lille"
Macro3cf
Case "Lione"
Macro3cg
Case "Lorient"
Macro3ch
Case "Marsiglia"
Macro3ci
Case "Monaco"
Macro3cl
Case "Montpellier"
Macro3cm
Case "Nantes"
Macro3cn
Case "Nizza"
Macro3co
Case "PSG"
Macro3cp
Case "Reims"
Macro3cq
Case "Rennes"
Macro3cr
Case "StEtienne"
Macro3cs
Case "Sochaux"
Macro3ct
Case "Tolosa"
Macro3cu
Case "Valenciennes"
Macro3cv
Case "Amburgo"
Macro4ca
Case "Augsburg"
Macro4cb
Case "B Leverkusen"
Macro4cc
Case "B Monaco"
Macro4cd
Case "B Dortmund"
Macro4ce
Case "B Mgladbach"
Macro4cf
Case "Braunschweig"
Macro4cg
Case "Francoforte"
Macro4ch
Case "Friburgo"
Macro4ci
Case "Hannover"
Macro4cl
Case "Hertha"
Macro4cm
Case "Hoffenheim"
Macro4cn
Case "Mainz"
Macro4co
Case "Norimberga"
Macro4cp
Case "Schalke"
Macro4cq
Case "Stoccarda"
Macro4cr
Case "W Brema"
Macro4cs
Case "Wolfsburg"
Macro4ct
Case "Almeria"
Macro5ca
Case "At Bilbao"
Macro5cb
Case "At Madrid"
Macro5cc
Case "Barcellona"
Macro5cd
Case "Betis"
Macro5ce
Case "Celta Vigo"
Macro5cf
Case "Elche"
Macro5cg
Case "Espanyol"
Macro5ch
Case "Getafe"
Macro5ci
Case "Granada"
Macro5cl
Case "Levante"
Macro5cm
Case "Malaga"
Macro5cn
Case "Osasuna"
Macro5co
Case "Rayo Vallecano"
Macro5cp
Case "R Madrid"
Macro5cq
Case "R Sociedad"
Macro5cr
Case "Siviglia"
Macro5cs
Case "Valensia"
Macro5ct
Case "Valladolid"
Macro5cu
Case "Villareal"
Macro5cv
Case "Academica"
Macro6ca
Case "Arouca"
Macro6cb
Case "Belenenses"
Macro6cc
Case "Benfica"
Macro6cd
Case "Estoril"
Macro6ce
Case "Gil Vicente"
Macro6cf
Case "Maritimo"
Macro6cg
Case "Nacional"
Macro6ch
Case "Olhanense"
Macro6ci
Case "Pacos Ferreira"
Macro6cl
Case "Porto"
Macro6cm
Case "Rio Ave"
Macro6cn
Case "Braga"
Macro6co
Case "Sporting Lisbona"
Macro6cp
Case "Vitoria Guimaraes"
Macro6cq
Case "Vitoria Setubal"
Macro6cr
Case "Ajax"
Macro7ca
Case "Alkmaar"
Macro7cb
Case "Cambuur"
Macro7cc
Case "Den Haag"
Macro7cd
Case "Feyenoord"
Macro7ce
Case "GAE"
Macro7cf
Case "Groningen"
Macro7cg
Case "Heerenveen"
Macro7ch
Case "Heracles"
Macro7ci
Case "NAC"
Macro7cl
Case "NEC"
Macro7cm
Case "PSV Eindhoven"
Macro7cn
Case "Roda"
Macro7co
Case "Twente"
Macro7cp
Case "Utrecht"
Macro7cq
Case "Vitesse"
Macro7cr
Case "Waalwijk"
Macro7cs
Case "Zwolle"
Macro7ct
Case "Amira"
Macro8ca
Case "Austria Vienna"
Macro8cb
Case "Grodig"
Macro8cc
Case "Rapid Vienna"
Macro8cd
Case "Ried"
Macro8ce
Case "Red Bull Salisburgo"
Macro8cf
Case "Innsbruck"
Macro8cg
Case "Neustadt"
Macro8ch
Case "WAC"
Macro8ci
Case "Sturm Graz"
Macro8cl
Case "Anderlecht"
Macro9ca
Case "Cercle Brugge"
Macro9cb
Case "Charleroi"
Macro9cc
Case "Club Brugge"
Macro9cd
Case "Genk"
Macro9ce
Case "Gent"
Macro9cf
Case "Kortrijk"
Macro9cg
Case "OH Leuven"
Macro9ch
Case "Lierse"
Macro9ci
Case "Lokeren"
Macro9cl
Case "Malines"
Macro9cm
Case "RAEC Mons"
Macro9cn
Case "Oostende"
Macro9co
Case "Standard Liegi"
Macro9cp
Case "Waasland"
Macro9cq
Case "Zulte Waregem"
Macro9cr
Case "Apollon"
Macro10ca
Case "ARIS"
Macro10cb
Case "Asteras Tripolis"
Macro10cc
Case "Atromitos"
Macro10cd
Case "Ergotelis"
Macro10ce
Case "Kalloni"
Macro10cf
Case "Levadiakos"
Macro10cg
Case "OFI Creta"
Macro10ch
Case "Olympiakos"
Macro10ci
Case "Panaitolikos"
Macro10cl
Case "Panathinaikos"
Macro10cm
Case "Panionios"
Macro10cn
Case "Panthrakikos"
Macro10co
Case "PAOK"
Macro10cp
Case "PAS Giannina"
Macro10cq
Case "Platanias"
Macro10cr
Case "Veria"
Macro10cs
Case "Xanthi"
Macro10ct
Case "Amkar"
Macro11ca
Case "Anzhi"
Macro11cb
Case "CSKA Mosca"
Macro11cc
Case "Dinamo Mosca"
Macro11cd
Case "Krasnodar"
Macro11ce
Case "Kryliya"
Macro11cf
Case "Kuban Krasnodar"
Macro11cg
Case "Lokomotiv Mosca"
Macro11ch
Case "Rostov"
Macro11ci
Case "Rubin Kazan"
Macro11cl
Case "Spartak Mosca"
Macro11cm
Case "Terek Grozny"
Macro11cn
Case "Tom Tomsk"
Macro11co
Case "Ural"
Macro11cp
Case "Volga"
Macro11cq
Case "Zenit"
Macro11cr
Case "Akhisar"
Macro12ca
Case "Antalyaspor"
Macro12cb
Case "Besiktas"
Macro12cc
Case "Bursaspor"
Macro12cd
Case "Caykur Rizespor"
Macro12ce
Case "Elazigspor"
Macro12cf
Case "Eskisehirspor"
Macro12cg
Case "Fenerbahce"
Macro12ch
Case "Galatasaray"
Macro12ci
Case "Gazientespor"
Macro12cl
Case "Genclerbirligi"
Macro12cm
Case "Karabukspor"
Macro12cn
Case "Kasimpasa"
Macro12co
Case "Kayseri Erciyesspor"
Macro12cp
Case "Kayserispor"
Macro12cq
Case "Konyaspor"
Macro12cr
Case "Sivasspor"
Macro12cs
Case "Trabzonspor"
Macro12ct
Case "Znojmo"
Macro13ca
Case "Banik Ostrava"
Macro13cb
Case "Bohemians"
Macro13cc
Case "Dukla Praga"
Macro13cd
Case "Jablonec"
Macro13ce
Case "Jihlava"
Macro13cf
Case "Mlada"
Macro13cg
Case "Pribram"
Macro13ch
Case "Sigma Olomouc"
Macro13ci
Case "Slavia Praga"
Macro13cl
Case "Slovacko"
Macro13cm
Case "Slovan Liberec"
Macro13cn
Case "Sparta Praga"
Macro13co
Case "Teplice"
Macro13cp
Case "Viktoria Plzen"
Macro13cq
Case "Brno"
Macro13cr
End Select
Exit Sub

SaltaD2: If Target.Address <> "$D$5" Then Exit Sub
Select Case Target
Case "Atalanta"
Macro1oa
Case "Bologna"
Macro1ob
Case "Cagliari"
Macro1oc
Case "Catania"
Macro1od
Case "Chievo"
Macro1oe
Case "Fiorentina"
Macro1of
Case "Genoa"
Macro1og
Case "Inter"
Macro1oh
Case "Juventus"
Macro1oi
Case "Lazio"
Macro1ol
Case "Livorno"
Macro1om
Case "Milan"
Macro1on
Case "Napoli"
Macro1oo
Case "Parma"
Macro1op
Case "Roma"
Macro1oq
Case "Sampdoria"
Macro1or
Case "Sassuolo"
Macro1os
Case "Torino"
Macro1ot
Case "Udinese"
Macro1ou
Case "Verona"
Macro1ov
Case "Arsenal"
Macro2oa
Case "Aston"
Macro2ob
Case "Cardiff"
Macro2oc
Case "Chelsea"
Macro2od
Case "Crystal"
Macro2oe
Case "Everton"
Macro2of
Case "Fulham"
Macro2og
Case "Hull"
Macro2oh
Case "Liverpool"
Macro2oi
Case "M City"
Macro2ol
Case "M UTD"
Macro2om
Case "Newcastle"
Macro2on
Case "Norwich"
Macro2oo
Case "Southampton"
Macro2op
Case "Stoke"
Macro2oq
Case "Sunderland"
Macro2or
Case "Swansea"
Macro2os
Case "Tottenham"
Macro2ot
Case "WestBrom"
Macro2ou
Case "WestHam"
Macro2ov
Case "Ajaccio"
Macro3oa
Case "Bastia"
Macro3ob
Case "Bordeaux"
Macro3oc
Case "EvianTG"
Macro3od
Case "Giungamp"
Macro3oe
Case "Lille"
Macro3of
Case "Lione"
Macro3og
Case "Lorient"
Macro3oh
Case "Marsiglia"
Macro3oi
Case "Monaco"
Macro3ol
Case "Montpellier"
Macro3om
Case "Nantes"
Macro3on
Case "Nizza"
Macro3oo
Case "PSG"
Macro3op
Case "Reims"
Macro3oq
Case "Rennes"
Macro3or
Case "StEtienne"
Macro3os
Case "Sochaux"
Macro3ot
Case "Tolosa"
Macro3ou
Case "Valenciennes"
Macro3ov
Case "Amburgo"
Macro4oa
Case "Augsburg"
Macro4ob
Case "B Leverkusen"
Macro4oc
Case "B Monaco"
Macro4od
Case "B Dortmund"
Macro4oe
Case "B Mgladbach"
Macro4of
Case "Braunschweig"
Macro4og
Case "Francoforte"
Macro4oh
Case "Friburgo"
Macro4oi
Case "Hannover"
Macro4ol
Case "Hertha"
Macro4om
Case "Hoffenheim"
Macro4on
Case "Mainz"
Macro4oo
Case "Norimberga"
Macro4op
Case "Schalke"
Macro4oq
Case "Stoccarda"
Macro4or
Case "W Brema"
Macro4os
Case "Wolfsburg"
Macro4ot
Case "Almeria"
Macro5oa
Case "At Bilbao"
Macro5ob
Case "At Madrid"
Macro5oc
Case "Barcellona"
Macro5od
Case "Betis"
Macro5oe
Case "Celta Vigo"
Macro5of
Case "Elche"
Macro5og
Case "Espanyol"
Macro5oh
Case "Getafe"
Macro5oi
Case "Granada"
Macro5ol
Case "Levante"
Macro5om
Case "Malaga"
Macro5on
Case "Osasuna"
Macro5oo
Case "Rayo Vallecano"
Macro5op
Case "R Madrid"
Macro5oq
Case "R Sociedad"
Macro5or
Case "Siviglia"
Macro5os
Case "Valensia"
Macro5ot
Case "Valladolid"
Macro5ou
Case "Villareal"
Macro5ov
Case "Academica"
Macro6oa
Case "Arouca"
Macro6ob
Case "Belenenses"
Macro6oc
Case "Benfica"
Macro6od
Case "Estoril"
Macro6oe
Case "Gil Vicente"
Macro6of
Case "Maritimo"
Macro6og
Case "Nacional"
Macro6oh
Case "Olhanense"
Macro6oi
Case "Pacos Ferreira"
Macro6ol
Case "Porto"
Macro6om
Case "Rio Ave"
Macro6on
Case "Braga"
Macro6oo
Case "Sporting Lisbona"
Macro6op
Case "Vitoria Guimaraes"
Macro6oq
Case "Vitoria Setubal"
Macro6or
Case "Ajax"
Macro7oa
Case "Alkmaar"
Macro7ob
Case "Cambuur"
Macro7oc
Case "Den Haag"
Macro7od
Case "Feyenoord"
Macro7oe
Case "GAE"
Macro7of
Case "Groningen"
Macro7og
Case "Heerenveen"
Macro7oh
Case "Heracles"
Macro7oi
Case "NAC"
Macro7ol
Case "NEC"
Macro7om
Case "PSV Eindhoven"
Macro7on
Case "Roda"
Macro7oo
Case "Twente"
Macro7op
Case "Utrecht"
Macro7oq
Case "Vitesse"
Macro7or
Case "Waalwijk"
Macro7os
Case "Zwolle"
Macro7ot
Case "Amira"
Macro8oa
Case "Austria Vienna"
Macro8ob
Case "Grodig"
Macro8oc
Case "Rapid Vienna"
Macro8od
Case "Ried"
Macro8oe
Case "Red Bull Salisburgo"
Macro8of
Case "Innsbruck"
Macro8og
Case "Neustadt"
Macro8oh
Case "WAC"
Macro8oi
Case "Sturm Graz"
Macro8ol
Case "Anderlecht"
Macro9oa
Case "Cercle Brugge"
Macro9ob
Case "Charleroi"
Macro9oc
Case "Club Brugge"
Macro9od
Case "Genk"
Macro9oe
Case "Gent"
Macro9of
Case "Kortrijk"
Macro9og
Case "OH Leuven"
Macro9oh
Case "Lierse"
Macro9oi
Case "Lokeren"
Macro9ol
Case "Malines"
Macro9om
Case "RAEC Mons"
Macro9on
Case "Oostende"
Macro9oo
Case "Standard Liegi"
Macro9op
Case "Waasland"
Macro9oq
Case "Zulte Waregem"
Macro9or
Case "Apollon"
Macro10oa
Case "ARIS"
Macro10ob
Case "Asteras Tripolis"
Macro10oc
Case "Atromitos"
Macro10od
Case "Ergotelis"
Macro10oe
Case "Kalloni"
Macro10of
Case "Levadiakos"
Macro10og
Case "OFI Creta"
Macro10oh
Case "Olympiakos"
Macro10oi
Case "Panaitolikos"
Macro10ol
Case "Panathinaikos"
Macro10om
Case "Panionios"
Macro10on
Case "Panthrakikos"
Macro10oo
Case "PAOK"
Macro10op
Case "PAS Giannina"
Macro10oq
Case "Platanias"
Macro10or
Case "Veria"
Macro10os
Case "Xanthi"
Macro10ot
Case "Amkar"
Macro11oa
Case "Anzhi"
Macro11ob
Case "CSKA Mosca"
Macro11oc
Case "Dinamo Mosca"
Macro11od
Case "Krasnodar"
Macro11oe
Case "Kryliya"
Macro11of
Case "Kuban Krasnodar"
Macro11og
Case "Lokomotiv Mosca"
Macro11oh
Case "Rostov"
Macro11oi
Case "Rubin Kazan"
Macro11ol
Case "Spartak Mosca"
Macro11om
Case "Terek Grozny"
Macro11on
Case "Tom Tomsk"
Macro11oo
Case "Ural"
Macro11op
Case "Volga"
Macro11oq
Case "Zenit"
Macro11or
Case "Akhisar"
Macro12oa
Case "Antalyaspor"
Macro12ob
Case "Besiktas"
Macro12oc
Case "Bursaspor"
Macro12od
Case "Caykur Rizespor"
Macro12oe
Case "Elazigspor"
Macro12of
Case "Eskisehirspor"
Macro12og
Case "Fenerbahce"
Macro12oh
Case "Galatasaray"
Macro12oi
Case "Gazientespor"
Macro12ol
Case "Genclerbirligi"
Macro12om
Case "Karabukspor"
Macro12on
Case "Kasimpasa"
Macro12oo
Case "Kayseri Erciyesspor"
Macro12op
Case "Kayserispor"
Macro12oq
Case "Konyaspor"
Macro12or
Case "Sivasspor"
Macro12os
Case "Trabzonspor"
Macro12ot
Case "Znojmo"
Macro13oa
Case "Banik Ostrava"
Macro13ob
Case "Bohemians"
Macro13oc
Case "Dukla Praga"
Macro13od
Case "Jablonec"
Macro13oe
Case "Jihlava"
Macro13of
Case "Mlada"
Macro13og
Case "Pribram"
Macro13oh
Case "Sigma Olomouc"
Macro13oi
Case "Slavia Praga"
Macro13ol
Case "Slovacko"
Macro13om
Case "Slovan Liberec"
Macro13on
Case "Sparta Praga"
Macro13oo
Case "Teplice"
Macro13op
Case "Viktoria Plzen"
Macro13oq
Case "Brno"
Macro13or
End Select
End Sub
________________________________________________________________________________________________________________
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("F2").Value = "G" Then
Call MacroPG
End If
If Trim(UCase(Range("G2").Value)) = "NG" Then
Call MacroPNG
End If
If Trim(UCase(Range("H2").Value)) = "UN" Then
Call MacroPUN
End If
If Trim(UCase(Range("I2").Value)) = "OV" Then
Call MacroPOV
End If
Application.EnableEvents = True
End Sub
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Flash30005 » 13/12/13 00:10

Non potresti inviare il file con i dati?
Secondo me ti stai "infognando" perché non occorrono tutte queste case o select
Te lo dico perché è da più di un anno che faccio questo tipo di "analisi" ;)
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 13/12/13 09:44

Flash30005 ha scritto:Non potresti inviare il file con i dati?
Secondo me ti stai "infognando" perché non occorrono tutte queste case o select
Te lo dico perché è da più di un anno che faccio questo tipo di "analisi" ;)
ciao


Ciao! So che è un codice fuori dal normale per i troppi select case e macro ma a me serviva qualora al prossimo campionato devo sostituire una singola squadra e perciò la macro corrispondente e l'origine dei dati.... Una complicazione ora per una facilità domani. Almeno credo!!!! :lol:
Sono una 20na di fogli tra query, tabelle, formule, ...
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 17/12/13 00:35

Bisognerebbe sapere "che cosa" provoca il cambiamento nelle celle $C$2, $C$5, $D$2, $D$5 (e non so se ne ho saltato qualche altra), che sono le celle controllate all' interno della Sub Worksheet_Change.
Se sono le macro eseguite nell' ambito della Sub Worksheet_Calculate, allora questo e' dovuto al fatto che il riconoscimento degli eventi e' stato bloccato nella Sub Worksheet_Calculate tramite Application.EnableEvents = False /True; modifica la macro in questo modo:
Codice: Seleziona tutto
Dim myRunning As Boolean    'RIGOROSAMENTE in testa al modulo, prima di ogni altra istruzione
Private Sub Worksheet_Calculate()
If myRunning Then Exit Sub
myRunning = True
'Application.EnableEvents = False
If Range("F2").Value = "G" Then
Call MacroPG
End If
If Trim(UCase(Range("G2").Value)) = "NG" Then
Call MacroPNG
End If
If Trim(UCase(Range("H2").Value)) = "UN" Then
Call MacroPUN
End If
If Trim(UCase(Range("I2").Value)) = "OV" Then
Call MacroPOV
End If
'Application.EnableEvents = True
myRunning = False
End Sub

Se invece quelle celle cambiano per altre vie allora lascia la macro come era prima, visto che il nuovo metodo risultera' piu' lento.

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

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 17/12/13 00:39

Aggiungo che mi vergognerei a lasciare in questo forum quella lunga sfilata di Case X /MacroX.
Assumo che le macro siano analoghe, cambia solo l' intervallo a cui si riferiscono; se e' cosi' prova a pubblicare il codice di una di esse e vedremo se si puo' modificare per renderla "universale".

Ri-ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Fabrx » 17/12/13 10:43

Anthony47 ha scritto:Aggiungo che mi vergognerei a lasciare in questo forum quella lunga sfilata di Case X /MacroX.
Assumo che le macro siano analoghe, cambia solo l' intervallo a cui si riferiscono; se e' cosi' prova a pubblicare il codice di una di esse e vedremo se si puo' modificare per renderla "universale".

Ri-ciao


:oops: :oops: :oops:
Non funziona ugualmente :cry:
Come faccio a caricare il file perché possa dargli uno sguardo. Tutto il codice è su Foglio1 (home)
Fabrx
Utente Junior
 
Post: 22
Iscritto il: 05/12/13 14:14

Re: se a1=G allora macro1, se b1=N allora macro2

Postdi Anthony47 » 17/12/13 22:44

Anthony ha scritto:Bisognerebbe sapere "che cosa" provoca il cambiamento nelle celle $C$2, $C$5, $D$2, $D$5 (e non so se ne ho saltato qualche altra), che sono le celle controllate all' interno della Sub Worksheet_Change
Se sono le macro eseguite nell' ambito della Sub Worksheet_Calculate, allora [.. etc etc...]
Visto che dici che ancora non funziona direi che non sono quelle macro a innescare il cambiamento delle celle.
Tuttavia non mi candido per scoprire dove e' l' arcano: chi ha disegnato il file dovrebbe gia' sapere che cosa sta alla base delle automazioni che sono state inserite.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "se a1=G allora macro1, se b1=N allora macro2":

se allora
Autore: french77
Forum: Applicazioni Office Windows
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti