› Excel e gli applicativi Microsoft Office › Inserire in una variabile il numero della riga della cella attiva di un'altro fi
-
AutoreArticoli
-
Buongiorno a tutti, ho un piccolo problema che non sono riuscito a risolvere.
Io ho due file di Excel aperti che per l'occasione denomino file1 e file2.
La macro è nel file1 e avrei bisogno di inserire in una variabile di tipo integer il numero della riga della cella attiva nel file2,'ho dichiarato la variabile briga in un modulo Public nriga As Integer Workbooks(file1).Sheets(nomefoglio).Activate nriga = ActiveCell.Rowsolo in nriga viene inserito il numero della riga attiva del file1
Ho provato anche la macro
nriga= ActiveCell.Row Workbooks(2).ActiveSheet.Range("A1").Value = nrigaIl risultato è che nella cella A1 del file 2 mi segna il numero della riga della cella attiva del file 1
Buona sera, @piperino;
mi sono perso.quando scrivi:
... La macro è nel File1 ...
In questo caso l'istruzione:Workbooks(file1).Sheets(nomefoglio).Activatevisto che il Codice VBA è nel File1, supponendo che il Foglio di lavoro da cui rilevare il "Numero della Riga attiva" sia "Foglio1", potrebbe tranquillamente essere:
Sheets(Foglio1).ActivateOra supponiamo di avere il File2.xlsx già aperto, sempre che abbia interpretato correttamente la tua richiesta, il Codice VBA potrebbe essere una cosa di questo tipo:
Option Explicit Sub Copia_numero_Riga_attiva_in_File2() Application.ScreenUpdating = False Dim nriga As Integer Sheets("Foglio1").Activate nriga = ActiveCell.Row Windows("File2.xlsx").Activate ActiveCell.Value = nriga Application.ScreenUpdating = True End SubBuona serata.
Giuseppe
Ma come faccio a scorporare i dati della cella con numriga. Mi spiego : ad esempio se io ho numriga, come vado a comporre le coordinate Range(A"......numriga) ?
Antonio scusami ma davvero hai riesumato nua discussione di tre anni fa?
Comunque non so se interpreto bene la tua domanda, ma per passare a Range un riferimento valido devi costruire una stringa perciò come hai intuito ti basta fare:
Range("A" & numriga)(perché Excel effettua comunque un cast implicito di tipi, cioè trasforma implicitamente una variabile di tipo numero in una di tipo testo e la concatena alla costante letterale "A" per ottenere qualcosa simile a Range("A56") (se numriga=56).In alternativa puoi usare la notazione con Cells(riga, colonna):
Cells(56, 1) equivale aRange("A56")e di passaggio faccio notare che puoi scrivere ancheCells(56, "A").Scusami, ma è la prima volta che mi imbatto in questo problema
. Comunque adesso rivado a vedere quella discussione. Grazie comunque.Suggerisco comunque di aprire una discussione tua, esemplificando il problema e il risultato atteso, se necessario allegando file di prova.
Ho vari fogli, tutti con la stessa struttura di dati, si tratta di informazioni su iscritti alle gare.
Ho una tabella dati di n righe e colonne da A a N. Le righe che sono interessate partono dalla nona.
La mia esigenza è quella di evidenziare la riga (da A ad N) in cui inserisco un dato nella cella attiva, colonna K.
Inoltre, dopo l'inserimento e con invio, rimanesse evidenziata fino ad un nuovo inserimeto.
Sarei grato se potesse aiutarmi!
Cordiali saluti
Riccardo Lio
Treviso
Ciao Riccardo Lio, gentilmente non ti accodare a una discussione vecchia e ormai chiusa, con cui poi c'entri poco, ma apri una discussione nuova tutta tua. Ti consiglio di registrarti al forum per poter allegare un file con uno scenario di esempio e la descrizione del risultato da raggiungere.
Inoltre quello che chiedi si puo' fare ma solo con VBA (ed e' un argomento gia' trattato in passato). Devi quindi anche cominciare a pensare di immergerti in questo ambiente e cercare di capire i suggerimenti che ti verranno dati.
Grazie per la pronta risposta.
Chiedo scusa per l'uso improprio, ma non sono pratico di come funzionano questi forum.
Avevo visto un argomento simile dopo vane ricerche e credevo che si potesse chuedere un aiuto tramite email.
Grazie comunque.
Riccardo Lio
Ps. Si intendevo un aiuto in VBA
credevo che si potesse chuedere un aiuto tramite email.
Tramite mail? Cosa intendi?
Comunque per favore apri una nuova discussione. Questa e' chiusa ormai.
-
AutoreArticoli
