Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

programmare con excel

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

programmare con excel

Postdi vaccant » 28/11/06 13:03

Sono un pivellino alle prime armi con la programmazione in excel e sarei assai grato a chi mi può dare una mano
Questo è il problema:
partendo da una Inputbox in cui inserisco, per esempio, il numero delle prime classi di una scuola per esempio 4
vorrei generare nel foglio1 colonna B il seguente elenco :
1a°
1b
1c
1d
Mi sono scervellato, ma non sono approdato ad alcun risultato, ringrazio chi mi può aiutare.
:)
vaccant
Newbie
 
Post: 6
Iscritto il: 28/11/06 12:03

Sponsor
 

Postdi Anthony47 » 28/11/06 15:14

Ciao vaccant e benvenuto nel forum.
Veramente non ho capito che cosa vuoi fare e perche’ pensi di dover usare l’ Inputbox per creare quell’ elenco.
Se spieghi il tuo obiettvo magari possiamo proporre un aiuto concreto, che include anche la proposta di quali strumenti utilizzare.

Ciao, fatti sentire.
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

Postdi vaccant » 29/11/06 09:03

Ciao Anthony47, grazie per la sollecita risposta, cerco di spiegare meglio le mie idee:
vorrei, partendo da una tabella in cui digitare il numero delle prime classi, delle seconde, delle terze classi, e così via, arrivare a creare un elenco delle classi che frequentano l’Istituto.
Questo elenco mi serve per collegare a ogni classe il numero delle ore di lezione per singola materia per la determinazione dell’organico dei docenti.
Spero di essere stato chiaro
Anticipatamente ringrazio e ti saluto
Vaccant
:undecided:
vaccant
Newbie
 
Post: 6
Iscritto il: 28/11/06 12:03

Postdi Anthony47 » 29/11/06 11:37

Quindi il risultato finale dovrebbe essere una colonna che elenca, riga per riga, le N prime (1A, 1B, etc; 2A, 2B, etc; etc..)?

Quale e' il numero max delle sezioni (Ci stiamo sempre con le 26 lettere o bisogna usare un trucco per indicare quelle in overflow)?
(ricordo che io frequentai una 1°O1, "qualche" anno fa)
Usate anche J-K e altre lettere non usualmente usate in italiano?

Attendo queste info.
Saluti,
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

Postdi Anthony47 » 30/11/06 13:33

Mi sono portato avanti; nell' ipotesi che le sezioni siano gestibili con le 26 lettere, incluse le "straniere", puoi usare la seguente macro:
Codice: Seleziona tutto
Sub Vaccant()
Spaziatura = 1      'N° di righe tra classi diverse; CAMBIARE se serve
FoglioOut = "Sezioni" 'Foglio su cui si genera la lista; CAMBIARE se serve
'
Dim Sez(10) As Integer
Sheets(FoglioOut).Select
For I = 0 To 10     'Clear array
 Sez(I) = 0
Next I
'Popola array
For I = 1 To 10
 QtSez = Application.InputBox("Numero di SEZIONI per le Classi " & I, "---> Max 26; digita 0 per TERMINARE", , , , , , 1)
 If QtSez > 0 And QtSez < 27 Then Sez(I) = QtSez Else GoTo Skipa
Next I
Skipa:
'Compila elenco
Range("A:A").ClearContents
Range("A1").Select
ActiveCell.Value = "Classe"
For I = 1 To 10
Selection.Offset(Spaziatura, 0).Select
If Sez(I) = 0 Then GoTo Skipb
 For J = 1 To Sez(I)
  Selection.Offset(1, 0).Select
  ActiveCell.Value = I & " - " & Chr(64 + J)
 Next J
Next I
Skipb:
Range("A1").Select
End Sub


Uso:
1) Nel tuo file, crea un foglio con nome Sezioni (doppioclick sul tab del nome, digita il nuovo nome, chiudi con Enter); questo foglio sara' azzerato nella colonna A e poi utilizzato per creare l' elenco.
2) Apri il vba editor, tramite Alt-F11; fai Menu ->Inserisci ->Modulo, e incolla il codice nel frame tutto bianco di dx
3) Torna su excel e assegna un tasto a questa macro: Menu ->Strumenti ->Macro ->Macro; selezioni Vaccant nelle' elenco che compare, premi Opzioni; nella casella "Tasto di scelta rapida" digita G (come Genera sezioni, G maiuscolo); conferma con Ok e chiudi con X

A questo punto, se premi Contr-Maiusc-G viene attivata la macro, che chiede in sequenza quante sezioni sono presenti per le Classi; digitando 0 si segnala il fine inserimento. L' elenco viene creato nel foglio Sezioni, colonna A.
Tra le classi, viene inserita una spaziatura di 1 riga vuota; si puo' cambiare modificando l' istruzione Spaziatura = 1; ad esempio
Codice: Seleziona tutto
Spaziatura = 0

annulla la spaziatura.

Per cambiare il foglio in cui si genera l' elenco, si puo' modificare l' istruzione FoglioOut = "Sezioni"; ad esempio
Codice: Seleziona tutto
FoglioOut = "Pippo"

Sconsiglio di usare nomi di default, quali Foglio1; se il foglio nonesiste nel file, la macro va in errore, si puo' chiudere con "Fine".

Saluti,
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

Postdi vaccant » 01/12/06 08:20

Grazie infinite, Anthony47 mi hai tolto un peso grande grandeeeeeeeee!
vaccant
Newbie
 
Post: 6
Iscritto il: 28/11/06 12:03


Torna a Applicazioni Office Windows


Topic correlati a "programmare con excel":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti