Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Amazon porta i colori sul suo Kindle da scrittura più grande: schermo Colorsoft a 11 pollici, processore quad-core, penna premium più reattiva e strumenti IA per le note, sono le note salienti. Il salto di prezzo rispetto al modello in bianco e nero si fa sentire, anche se la percezione è quella di trovarsi di fronte a un prodotto di fascia altissima, per veri appassionati
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-07-2006, 09:54   #1
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
[VBA]nidificazione di if in una macro per struttura complessa

Salve gente, ho un problema.
Devo creare una macro in exel che in base al contenuto di una colonna mi inserisca un certo contenuto in un altra colonna.
Il contenuto della prima colonna ha 21 possibili valori testuali, per ognuno di questi la macro deve riempire nella seconda colonna un valore testuale corrispondente al valore testuale della prima colonna, es.: in colonna A ce scritto "Italia", nella colonna B deve inserire "Francia" e cosi via per 21 possibili contenuti diversi in colonna A.
Il problema è che il contenuto della colonna A, cioe quello che la macro deve prendere e confrontare parte dalla riga 2 e finisce appena la macro incontra la prima riga vuota (sono circa 10000 righe da confrontare).
Un altro ostacolo sarebbe quello di una condizione composta tra A e B con un "and" per poi riempire C. Se qualcuno mi potrebbe dare una mano con il codice visual basic facendomi vedere un esempio di una condizione gli sarei veramente molto grato, grazie a tutti in anticipo
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2006, 13:56   #2
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
up plz
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2006, 15:39   #3
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da Anomaly Rulez
Salve gente, ho un problema.
Devo creare una macro in exel che in base al contenuto di una colonna mi inserisca un certo contenuto in un altra colonna.
Il contenuto della prima colonna ha 21 possibili valori testuali, per ognuno di questi la macro deve riempire nella seconda colonna un valore testuale corrispondente al valore testuale della prima colonna, es.: in colonna A ce scritto "Italia", nella colonna B deve inserire "Francia" e cosi via per 21 possibili contenuti diversi in colonna A.
Il problema è che il contenuto della colonna A, cioe quello che la macro deve prendere e confrontare parte dalla riga 2 e finisce appena la macro incontra la prima riga vuota (sono circa 10000 righe da confrontare).
Un altro ostacolo sarebbe quello di una condizione composta tra A e B con un "and" per poi riempire C. Se qualcuno mi potrebbe dare una mano con il codice visual basic facendomi vedere un esempio di una condizione gli sarei veramente molto grato, grazie a tutti in anticipo
Ciao !
Non sono sicuro di aver capito una cosa: la lista dei 21 valori e' fissa ?
Se si', tu hai una tabella del tipo:
1 Italia Francia
2 AAA2 BBB2
3 ...... .......
per cui vuoi che la macro, in corrispondenza della presenza di ListaA(x) in colonna 1, metta ListaB(x) in colonna 2 ? Ho capito bene?

Allora dovresti:
dimensionare le 2 matrici ListaA() e ListaB(), riempirle con le stringhe appropriate, poi eseguire qualcosa del genere:

Codice:
Sub CommandButton1_Click()
   Dim r As Long, s As String, i As Integer
   r = 2
   Do
      s = Cells(r, 1)
      If s = "" Then Exit Do  ' riga vuota = fine
      For i = 1 To 21
         If StrComp(s, ListaA(i), vbTextCompare) = 0 Then
            Cells(r, 2) = ListaB(i)
            Exit For
         End If
      Next
      r = r + 1
   Loop
End Sub
Spero possa esserti utile. Ciao !

Ultima modifica di icecube_HU : 18-07-2006 alle 15:42.
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2006, 22:06   #4
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
quella dei 21 valori era un esempio cmq i dati che dovrebbero andare in B e che quindi il programma inserisce confrontando A glieli devo dare io perche sono in una tabella corretta
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2006, 08:30   #5
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
sapete dirmi perche questo codice mi da sempre in colonna (i, 21) il valore "United Kingdom" pur avendo delle celle in colonna (i, 8) contenenti "Carraro" ?

Quote:
Dim i As Integer

For i = 2 To 2189

If Cells(i, 8) = "Basildon" Then
Cells(i, 21) = "United Kingdom"
ElseIf Cells(i, 8) = "Carraro" Then



Cells(i, 21) = "France"
End If


Next i
End Sub
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2006, 09:23   #6
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
nenache con questo codice funziona, se ci sono delle celle vuote addirittura le lascia vuote senza modificarle !

Quote:
For i = 2 To 2189
Select Case Cells(i, 8).Value
Case "Basildon"
Cells(i, 21).Value = "United Kingdom"
Case "Carraro"
Cells(i, 21).Value = "France"

End Select



Next i
End Sub
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2006, 09:51   #7
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da Anomaly Rulez
nenache con questo codice funziona, se ci sono delle celle vuote addirittura le lascia vuote senza modificarle !
Il codice, per quello che si puo' vedere, e' corretto (meglio il Select..Case) !

L'unica cosa che mi viene da pensare (a meno di eventuali banali sviste sul n. di colonna) e': sei sicuro che nei dati del foglio Excel siano presenti ESATTAMENTE quelle stringhe che cerchi nel codice ?
Non ci possono essere differenze di minuscole/maiuscole, eventuali spazi prima o dopo le lettere...?
Potresti provare a modificare il codice con:

Select Case Lcase(Trim(Cells(i, 8).Value)) 'toglie gli spazi prima/dopo e converte a minuscolo
....
Case "basildon" ' i confronti devi farli quindi tutti con le str. minuscole...

Ciao.
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2006, 12:19   #8
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
la prima lettera deve rimanere maiuscola, per il controllo ortografico l'ho fatto piu di una volta, è tutto a posto
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2006, 08:49   #9
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
quel problema li l'ho risolto, ora ne ho un'altro che è piu semplice per voi, ma non per me da risolvere, vi mostro il codice

Quote:
Case Is < 200606
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'TAB SLE'!R5C[-15]:R9000C[1],5,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ecco, in questa condizione devo riuscire a modificare il parametro in rosso che è il nome di un foglio di lavoro che ho nel file excel in cui sto lavorando con l'indice corrispondente del foglio in rosso, avendo cosi un riferimento sempre valido anche in caso di cambiamento del nome del foglio, mi pare che l'indice vada in base alla disposizione dei fogli, quindi essendo il terzo foglio credo abbia indice 3, ma non conosco la sintassi per fare questo cambiamento, se qualcuno mi puo aiutare gli sarei molto grato
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2006, 10:13   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non l'ho mai fatto, ma dovrebbe funzionare Sheets(1)
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2006, 11:22   #11
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
ho provato e purtroppo non funziona
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2006, 11:50   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Guarda qui: http://www.ozgrid.com/VBA/excel-vba-sheet-names.htm
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2006, 08:39   #13
Anomaly Rulez
Senior Member
 
L'Avatar di Anomaly Rulez
 
Iscritto dal: Oct 2005
Città: Modena
Messaggi: 1160
purtroppo non si po fare, cmq avrei un'altro piccolo problemino che non capisco

il compilatore mi da un errore di "Tipo non corrispondente" in questo pezzo di codice

Quote:
Do While (ActiveSheet.Columns(3).Value = "CAR")
qualcuno sa dov'è l'errore ?
__________________

Thermaltake Armor Silver#Q6600 @3.3 Ghz - 1.31V#Asus P5Q3 Deluxe wifi-ap @n#2x2 Gb Patriot 1600 Mhz#Palit GTX 570 Sonic edition#WD Caviar blue 500 Gb#Tagan u25 500W#Noctua Nh-d14#Logitech G15
- SPI 34" -
Anomaly Rulez è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
Amazon lancia la sfida dei chip AI: semi...
The Elder Scrolls VI: lo sviluppo c...
Samsung Galaxy S25 Edge 256GB al minimo ...
Un pianeta sette volte più grande della ...
Fastweb, quinta rimodulazione del 2026: ...
Gli scienziati hanno appena trovato il '...
Recensione OPPO Enco Air5 Pro: il perfet...
'Completamente falso': Elon Musk spegne ...
OnePlus invita gli utenti a provare i di...
Grand Theft Auto VI arriva su Amazon al ...
GTA 6, dubbi sulla modalità 'Perf...
Braun in offerta su Amazon: rasoi elettr...
Microsoft aggiorna ancora la gamma Surfa...
Tesla Semi coinvolto nel suo primo incid...
'Si. Può. Fare!': i ricercatori h...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v