View Full Version : [VBA] Aiutino su una macro facile facile...
robnet77
06-11-2003, 14:53
Mi servirebbe una mano per realizzare una macro che, dato un foglio Excel che abbia in una determinata colonna dei valori di questo tipo:
A B C D E
00071
00056
00048
00096
mi restituisca i valori senza gli zeri all'inizio:
A B C D E
71
56
48
96
tempo fa avevo fatto la stessa cosa con VB6 ma su una textbox usando un ciclo di Mid$ che usciva quando incontrava un valore diverso da 0.
Eccola:
'procedura per eliminare gli zeri all'inizio dell'ordine cliente
Dim i As Byte
i = 1
Do While i < Len(Parte1)
If Mid$(Parte1, i, 1) = "0" Then
Check = Mid$(Parte1, i + 1, (Len(Parte1) - i + 1))
ElseIf Mid$(Parte1, i, 1) <> "0" Then
i = Len(Parte1)
End If
i = i + 1
Loop
scusate ma non trovo più come si inseriscono dei tag di codice, ho incollato il codice VB che avevo creato :muro:
E' possibile recuperare parte del codice in VBA? Non sono pratico di macro...
Grazie :)
robnet77
06-11-2003, 14:55
ops, scusate per la ridondanza nel codice :p
nel tempo l'ho modificato (c'erano più clausole if in principio)... :p
Excel > Alt+F11 > Inserisci > Modulo
per ogni cella del range:
cella = StringaSenzaZeri(cella)
(ma non si fa proprio così)
Function StringaSenzaZeri(Stringa)
copia_e_incolla
(ma bastano 3 righe)
End function
ricordo sempre che le function definite dall'utente in VBA-Excel sono sempre e ovunque disponibili in ogni cella di ogni foglio come le funzioni intrinseche del foglio di calcolo.
per cui lo spazzolamento e pulizia lo puoi fare anche in un range ausiliario.
robnet77
06-11-2003, 18:11
Originariamente inviato da a2000
ricordo sempre che le function definite dall'utente in VBA-Excel sono sempre e ovunque disponibili in ogni cella di ogni foglio come le funzioni intrinseche del foglio di calcolo.
per cui lo spazzolamento e pulizia lo puoi fare anche in un range ausiliario.
grazie, domattina provo, non so se ho capito bene (sono alle prime armi, sorry).
Ciao
:)
su VBA
Funzione Replace
Descrizione
Restituisce una stringa in cui la sottostringa specificata è stata sostituita con un'altra sottostringa per il numero di volte indicato.
Sintassi
Replace(expression, find, replace[, start[, count[, compare]]])
La sintassi della funzione Replace è composta dai seguenti argomenti predefiniti:
...
su foglio
SOSTITUISCI
Vedere anche
Sostituisce nuovo_testo a testo_prec in una stringa di testo. Utilizzare la funzione SOSTITUISCI quando si desidera sostituire del testo specifico in una stringa di testo. Utilizzare la funzione RIMPIAZZA quando si desidera sostituire del testo qualsiasi in una posizione specifica all'interno di una stringa di testo.
Sintassi
SOSTITUISCI(testo;testo_prec;nuovo_testo;ricorrenza)
Testo è il testo o un riferimento a una cella contenente del testo di cui si desidera sostituire dei caratteri.
.....
robnet77
07-11-2003, 09:26
Originariamente inviato da a2000
su VBA
Funzione Replace
Descrizione
Restituisce una stringa in cui la sottostringa specificata è stata sostituita con un'altra sottostringa per il numero di volte indicato.
Sintassi
Replace(expression, find, replace[, start[, count[, compare]]])
La sintassi della funzione Replace è composta dai seguenti argomenti predefiniti:
...
su foglio
SOSTITUISCI
Vedere anche
Sostituisce nuovo_testo a testo_prec in una stringa di testo. Utilizzare la funzione SOSTITUISCI quando si desidera sostituire del testo specifico in una stringa di testo. Utilizzare la funzione RIMPIAZZA quando si desidera sostituire del testo qualsiasi in una posizione specifica all'interno di una stringa di testo.
Sintassi
SOSTITUISCI(testo;testo_prec;nuovo_testo;ricorrenza)
Testo è il testo o un riferimento a una cella contenente del testo di cui si desidera sostituire dei caratteri.
.....
conosco queste funzioni, ma il numero di zeri non è fisso e poi rischierei di togliere anche gli zeri significativi, nel listato che ho postato ieri (qua sopra) ho risolto lo stesso problema in VB6 partendo da una textbox, ma non so come adattare quel codice su VBA... :)
Grazie, intanto!
Function CutTrailZero1(a$)
Do While Left$(a$, 1) = "0"
a$ = Mid$(a$, 2)
Loop
CutTrailZero1 = a$
End Function
Function CutTrailZero2(a$)
For i = 1 To Len(a$)
If Mid$(a$, i, 1) <> "0" Then Exit For
Next i
CutTrailZero2 = Mid$(a$, i)
End Function
Mont3zum4
18-11-2003, 08:51
senza scomodare il vba, mi pare basti sommare alla stringa uno zero:
A1 = "0001234"
B1 = A1 + 0 => 1234
come una limonata per lo squarrao :D
Mont3zum4
18-11-2003, 15:56
altrimenti detto squarauz
e chi meglio di te lo può sapere ! :D
Mont3zum4
18-11-2003, 19:24
non ho capito se mi devo offendere o meno
direi di no, comunque vedi tu:
http://www.cidimu.it/images/photo/mai_ac2_0602.jpg
http://www.cidimu.it/home/art.asp?spec=mai&id=2712
Due patologie gastrointestinali molto comuni
La maledizione di Montezuma
Redazione
Il rischio di contrarre patologie che interessano l’apparato digerente è particolarmente legato all’alimentazione e alle bevande.
Diarrea del viaggiatore
Patologia che riconosce eziologie batteriche diverse e nei confronti della quale non è opportuno attuare una prevenzione mediante assunzione di antibiotici: questi, a seconda dei casi, non solo potrebbero rivelarsi scarsamente efficaci ma addirittura peggiorare la situazione in seguito alla comparsa di fenomeni di dismicrobismo intestinale o alla selezione di ceppi batterici antibiotico-resistenti.
Enterite da Vibrio colerae
Anche in questo caso è sconsigliata un'antibioticoprofilassi. L'osservanza rigorosa delle misure di carattere generale in tema di assunzione di cibi e bevande sarà sufficiente a ridurre notevolmente il rischio di queste infezioni: di esse si dovrà comunque tenere conto nel preparare la farmacia da viaggio che dovrà contenere, fra l'altro, antibiotici attivi sugli agenti batterici potenziali cause di tossinfezioni intestinali efficaci anche contro V. colerae.
Quando si parte per un viaggio verso terre lontane occorre portare con sé la cosiddetta farmacia da viaggio.
La farmacia di viaggio deve innanzitutto contenere i farmaci eventualmente assunti per patologie in trattamento.
Non dimenticare utili materiali di medicazione: garze, cerotti, disinfettanti, siringhe a perdere, sali per reidratazione, repellenti cutanei contro le zanzare, creme antisolari.
Tra i farmaci da ricordare: antitermici, analgesici, antiinfiammatori, antiistaminici, antidiarroici, alcuni antibiotici (chinolonici, tetracicline a basso dosaggio, metronidazolo, ecc.) ed antimalarici, diversi da quello usato per la chemioprofilassi, per un eventuale autotrattamento.
Il medico di famiglia che prescriverà tali farmaci dovrà, naturalmente, informare il paziente circa le situazioni che possono richiederne l'impiego e le rispettive modalità di assunzione (posologia, ecc.).
Nella farmacia dovranno comunque trovare posto anche farmaci antimalarici che il turista potrà utilizzare in casi di emergenza, qualora particolari situazioni logistiche rendano temporaneamente impossibile il ricorso a strutture sanitarie.
Mont3zum4
19-11-2003, 01:26
AH AH! Fantastico!
E siamo completamente OT. Fra poco ci sparano a sale sul culo!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.