PDA

View Full Version : Qualcuno sa usare le macro di excel? (2)


TheMaster1983
16-07-2008, 15:04
Sono sempre qua ora con un nuovo quesito, devo far funzionare una macro semplicissima di excel, quando clicco su un pulsante mi devi riportare dei numeri su delle righe, ora pero mi trovo davanti ad un problema, che avendo 100 righe dovrei fare un tasto ogni riga e registrare una nuova macro, ora vorrei sapere se è possibile creare una macro che funzioni a selezione, mi spiego

Seleziono la cella (o le celle) e eseguo la macro. (riga 45)
Seleziona la cella (o le celle) e eseguo la macro (riga 69)

Quindi vorrei usare una sola macro che mi copia qusti "numeri" dove seleziono.

zuper
16-07-2008, 16:29
Sono sempre qua ora con un nuovo quesito, devo far funzionare una macro semplicissima di excel, quando clicco su un pulsante mi devi riportare dei numeri su delle righe, ora pero mi trovo davanti ad un problema, che avendo 100 righe dovrei fare un tasto ogni riga e registrare una nuova macro, ora vorrei sapere se è possibile creare una macro che funzioni a selezione, mi spiego

Seleziono la cella (o le celle) e eseguo la macro. (riga 45)
Seleziona la cella (o le celle) e eseguo la macro (riga 69)

Quindi vorrei usare una sola macro che mi copia qusti "numeri" dove seleziono.

ancora tu????? :eek: :eek: :eek:

ehehehehehe

dai spiega meglio o posta file...non ho capito nulla!!

zuper
16-07-2008, 16:33
nn so se ho capito bene...

ma tu puoi far partire la macro dal punto che vuoi!!

Selection.Copy
Range("B26").Select
ActiveSheet.Paste

questa macro, per esempio, parte copiando direttamente quello che hai selezionato PRIMA di cliccare sulla macro stessa...

ho capito giusto??

TheMaster1983
16-07-2008, 17:00
ancora tu????? :eek: :eek: :eek:

ehehehehehe

dai spiega meglio o posta file...non ho capito nulla!!

si sempre io :p

Allora

Come vedrete nel foglio ke ho fatto sotto prestazioni per ciascuna giornata devo mettere come segue
8 8 8 8 / / 8 8 8 8 8 / / 8 8 8 8 8 / / 8 8 8 8 8 / / 8 8 8 8



Nel caso un dipendente sia presente tutti i giorni nell arco del mese, ora vorrei creare una macro che quando la pigio mi riporta questa sfilza di numeri iniziando dalla cella che seleziono, cosi se qualcuno è stato assente lo metterò a mano e se ci saranno piu dipendenti che sono stati presenti tutto il mese premendo il tasto eviterò di inserire tutti i dati uguali.

Link :D
http://rapidshare.com/files/130151808/Gestione_presenza.xls.html

zuper
16-07-2008, 18:04
si sempre io :p

Allora

Come vedrete nel foglio ke ho fatto sotto prestazioni per ciascuna giornata devo mettere come segue



Nel caso un dipendente sia presente tutti i giorni nell arco del mese, ora vorrei creare una macro che quando la pigio mi riporta questa sfilza di numeri iniziando dalla cella che seleziono, cosi se qualcuno è stato assente lo metterò a mano e se ci saranno piu dipendenti che sono stati presenti tutto il mese premendo il tasto eviterò di inserire tutti i dati uguali.

Link :D
http://rapidshare.com/files/130151808/Gestione_presenza.xls.html

non so mica se ho capito

Sub Macro2()
'
' Macro2 Macro
'

'
ActiveCell.Value = "x"
ActiveCell.Offset(0, 45).Select
ActiveCell.Value = "x"
Selection.End(xlUp).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Selection.End(xlDown).Select
ActiveCell.Value = ""
ActiveCell.Offset(0, -45).Select
ActiveSheet.Paste
End Sub

questo pezzo di macro ti incolla la sfilza di cui sopra partendo dalla cella che selezioni

NOTA BENE....

per farla funzionare devi COPIARE la stringa di testo sopra partendo da AV1 a BZ1....capito??

TheMaster1983
17-07-2008, 08:05
Ci sono riuscito ma ti giuro non capisco il codice, ho provato anche in internet a cercare di capirci qualkosa, hai qualche consiglio per iniziare a masticare un po di codice?

zuper
17-07-2008, 08:47
Ci sono riuscito ma ti giuro non capisco il codice, ho provato anche in internet a cercare di capirci qualkosa, hai qualche consiglio per iniziare a masticare un po di codice?


ActiveCell.Value = "x"
ActiveCell.Offset(0, 45).Select
ActiveCell.Value = "x"
Selection.End(xlUp).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Selection.End(xlDown).Select
ActiveCell.Value = ""
ActiveCell.Offset(0, -45).Select
ActiveSheet.Paste



mette una x nella casella selezionata, mi serve come puntamento per tornare indietro dopo
fa un offset di 45 colonne (verso destra) per posizionarsi sotto la corrispondente casella di partenza delle righe che ti ho fatto aggiungere
mette una x anche qui...stesso discorso...mi serve per tornare indietro
vai verso la prima colonna "piena" verso l'alto
seleziona fino all'ultima cella piena verso destra
copia
scende fino alla prima cella piena (una delle 2 x di prima...ricordi??)
cancella la x di cui sopra
torna indietro delle 45 colonne del punto 2
incolla


mi sono accorto che il punto 1 forse è inutile...nn mi ricordo perchè l'ho messo...ma poco male...tanto poi il paste ci scrive sopra :D

TheMaster1983
17-07-2008, 11:08
ActiveCell.Value = "x"
ActiveCell.Offset(0, 45).Select
ActiveCell.Value = "x"
Selection.End(xlUp).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Selection.End(xlDown).Select
ActiveCell.Value = ""
ActiveCell.Offset(0, -45).Select
ActiveSheet.Paste



mette una x nella casella selezionata, mi serve come puntamento per tornare indietro dopo
fa un offset di 45 colonne (verso destra) per posizionarsi sotto la corrispondente casella di partenza delle righe che ti ho fatto aggiungere
mette una x anche qui...stesso discorso...mi serve per tornare indietro
vai verso la prima colonna "piena" verso l'alto
seleziona fino all'ultima cella piena verso destra
copia
scende fino alla prima cella piena (una delle 2 x di prima...ricordi??)
cancella la x di cui sopra
torna indietro delle 45 colonne del punto 2
incolla


mi sono accorto che il punto 1 forse è inutile...nn mi ricordo perchè l'ho messo...ma poco male...tanto poi il paste ci scrive sopra :D
Bellissimo a livello di codice ma ancora non riesco a capire quando gli dici di copiare la stringa di numeri che mi hai fatto mettere da AV1 in poi, perchè nel caso che volessi fare un altra macro identica ma con dei numeri diversi vorrei poterlo fare, ma non riesco a capire come gli hai detto di leggere quei numeri:D
Sei gentilissimo,dicevo hai qualche consiglio se mi piacerebbe imparicchiare un po di codice?

zuper
17-07-2008, 11:14
Bellissimo a livello di codice ma ancora non riesco a capire quando gli dici di copiare la stringa di numeri che mi hai fatto mettere da AV1 in poi, perchè nel caso che volessi fare un altra macro identica ma con dei numeri diversi vorrei poterlo fare, ma non riesco a capire come gli hai detto di leggere quei numeri:D
Sei gentilissimo,dicevo hai qualche consiglio se mi piacerebbe imparicchiare un po di codice?

mah guarda...nn saprei...non conosco le macro e il codice vba così bene!

devi metterti li e provare....ti registri qualche macro automaticamente e poi vai a guardare il codice che ha scritto...

poi cerchi su google se hai necessità particolari...di solito si trova risposta a tutto!

zuper
17-07-2008, 11:16
Bellissimo a livello di codice ma ancora non riesco a capire quando gli dici di copiare la stringa di numeri che mi hai fatto mettere da AV1 in poi, perchè nel caso che volessi fare un altra macro identica ma con dei numeri diversi vorrei poterlo fare, ma non riesco a capire come gli hai detto di leggere quei numeri:D
Sei gentilissimo,dicevo hai qualche consiglio se mi piacerebbe imparicchiare un po di codice?

hai editato mentre rispondevo :)

beh dalla prima colonna del giorno 1 alla colonna dove comincia quello che hai copiato c'è appunto un offset di 45 colonne...

quindi chiaramente se tu vuoi partire dalla colonna del giorno 2 c'è comunque un offset di 45 dalla colonna che vuoi cominciare a copiare ;)