Condividi tramite

excel vba inserire dati nella prima cella di colonne consecutive

Anonimo
2018-06-05T07:38:01+00:00

Buon Giorno

Vorrei  inserire le etichette delle colonne , nelle cui righe successive andranno inseriti dati .

Ho creato una UserForm 

La  ListBox (lb1) all'attivazione carica un Elenco , con l'evento    lb1_Click    , inizio ad inserire i Nomi delle Colonne , in sequenza

A1,B1,C1,D1,E1,    .........  se sospendo e ricomincio , riparte dall'ultima inserita (la prima vuota ..) VORREI  MA .....

Riesco a farlo con le righe , pensavo fosse semplice con le colonne .... non  ci riesco  .. mi sono incasinato

Cosi' inserisco dati a partire dalla prima riga vuota

i = 1

    Do Until Sheets("Prova").Cells(i, 1) = Empty

        i = i + 1

    Loop

    With Sheets("Prova")

        .Cells(i, 1).Value = lb1.Text        

    End With

Come devo modificare per  passare dalle Righe alle Colonne  ???  

                           Grazie    Claudio P

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2018-06-06T08:08:05+00:00

Ciao Claudio,

Anche per me' e' difficile  impostare il quesito in maniera chiara .....  scusa , ci provo 

Selezionando  uno dei nominativi dell'elenco caricato dalla ListBox1  ( Click )  , vorrei riportare il Nominativo selezionato , in

A1 , il secondo nominativo (selezionato dalla ListBox1) dovrebbe essere riportato in B1 , il terzo (selezionato dalla ListBox1) in  C1 , il  quarto (selezionato dalla ListBox1)  in D1      (Max 50 Colonne ...) .

Il nr. di Colonne interessate , e' variabile , pero' sempre consecutive  , Es.:  A1:N1  oppure  A1:AZ1

Questi Nominativi Saranno le intestazioni delle Colonne ,  a titolo di Esempio Supponendo che siano delle squadre di calcio , Colonna A  (A1)  Juventus , Colonna B (B1) Milan  , Colonna C (C1)  Inter  .......  

UserForm Activate   La ListBox1  Carica l'Elenco delle squadre

ListBox1_Click    copia il Nome della Squadra scelta nella Cella A1

Ripetendo il ciclo (ListBox1_Click)  copia il Nome della Squadra scelta nella Cella  B1

A seguire  C1 , D1 ,  ....

Dopodiche' , studiero' il modo per poter scegliere la colonna di interesse e aggiungere i nomi dei giocatori delle squadra

(dei quali esiste un elenco ...) nella colonna di competenza  Es.:  Colonna A  in A1  Juventus  , in A2 Buffon , in A3 Chiellini .....

Ma questa parte voglio farla da solo (ci Provo ....)

Forse ho saltato dal manuale VB  il capitolo Column Count  Index  .....

Avendo oramai capito la tua esigenza, prova qualcosa come segue.

Poniamo che abbiamo un file con un foglo denominato Squadre, il quale comprende un elenco di squadre nella sua colonna A; e un foglio denominato Output per ricevere i nomi delle squadre selezionate con la Userform, le selezioni essendo elencate sequenzialmente nella sua prima riga.

Crea una Userform con:-

Un controllo Listbox:   lbxSquadre

Due controlli CommandButton:  cbInserisce_Squadra e cb_Esce

Nel modulo di codice della Userfom, incolla il seguente codice:

'=========>>

Option Explicit

Dim SH_Output As Worksheet

'--------->>

Private Sub UserForm_Initialize()

    Dim WB As Workbook

    Dim SH_Input As Worksheet

    Dim Rng_Squadre As Range, Rng_Output As Range

    Dim LRow As Long

    Const sFoglio_Input As String = "Squadre"

    Const sFoglio_Output As String = "Output"

    Set WB = ThisWorkbook

    With WB

        Set SH_Input = .Sheets(sFoglio_Input)

        Set SH_Output = .Sheets(sFoglio_Output)

    End With

    With SH_Input

        LRow = .Cells(Rows.Count, "A").End(xlUp).Row

        Set Rng_Squadre = .Range("A2:A" & LRow)

    End With

    Me.lbxSquadre.List = Rng_Squadre.Value

End Sub

'--------->>

Private Sub cbInserisce_Squadra_Click()

    Dim sSquadra As String

    Dim Rng_Output As Range

    Dim myOffset As Long

    With Me.lbxSquadre

        sSquadra = .List(.ListIndex)

    End With

    With SH_Output

        myOffset = Not IsEmpty(.Cells(1, "A"))

        Set Rng_Output = .Cells(1, .Columns.Count). _

                                    End(xlToLeft).Offset(0, -myOffset)

    End With

    Rng_Output.Value = sSquadra

End Sub

'--------->>

Private Sub cb_Esce_Click()

    Unload Me

End Sub

'<<=========

Potresti scaricare il mio file di prova Claudio20180606.xlsm

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-06-06T08:45:47+00:00

    Ciao Claudio,

    Grazie e' proprio quello che mi serviva !!!!

    Bene! Mi fa piacere.

    Adesso mi metto di impegno per ultimare il progetto .... Caricare le squadre  (etichette colonne ) , selezionando la squadra , far caricare ad una listBox i nomi degli appartenenti alla squadra ,selezionando il nome , inserire il dato in sequenza ...

    Ti auguro buon lavoro.

    Se dovessi riscontrare ostacoli, ricordati che siamo sempre qui.

    Buona giornata.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-06-06T08:37:29+00:00

    Buon Giorno Norman

    Grazie e' proprio quello che mi serviva !!!!

    Adesso mi metto di impegno per ultimare il progetto .... Caricare le squadre  (etichette colonne ) , selezionando la squadra , far caricare ad una listBox i nomi degli appartenenti alla squadra ,selezionando il nome , inserire il dato in sequenza ...

    Grazie   Grazie     Claudio P

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-06-06T06:31:51+00:00

    Buon giorno  Norman

    Anche per me' e' difficile  impostare il quesito in maniera chiara .....  scusa , ci provo

    Selezionando  uno dei nominativi dell'elenco caricato dalla ListBox1  ( Click )  , vorrei riportare il Nominativo selezionato , in

    A1 , il secondo nominativo (selezionato dalla ListBox1) dovrebbe essere riportato in B1 , il terzo (selezionato dalla ListBox1) in  C1 , il  quarto (selezionato dalla ListBox1)  in D1      (Max 50 Colonne ...) .

    Il nr. di Colonne interessate , e' variabile , pero' sempre consecutive  , Es.:  A1:N1  oppure  A1:AZ1

    Questi Nominativi Saranno le intestazioni delle Colonne ,  a titolo di Esempio Supponendo che siano delle squadre di calcio , Colonna A  (A1)  Juventus , Colonna B (B1) Milan  , Colonna C (C1)  Inter  .......  

    UserForm Activate   La ListBox1  Carica l'Elenco delle squadre

    ListBox1_Click    copia il Nome della Squadra scelta nella Cella A1

    Ripetendo il ciclo (ListBox1_Click)  copia il Nome della Squadra scelta nella Cella  B1

    A seguire  C1 , D1 ,  ....

    Dopodiche' , studiero' il modo per poter scegliere la colonna di interesse e aggiungere i nomi dei giocatori delle squadra

    (dei quali esiste un elenco ...) nella colonna di competenza  Es.:  Colonna A  in A1  Juventus  , in A2 Buffon , in A3 Chiellini .....

    Ma questa parte voglio farla da solo (ci Provo ....)

    Forse ho saltato dal manuale VB  il capitolo Column Count  Index  .....

                                                         Grazie per la pazienza    Claudio P

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-06-05T14:42:44+00:00

    Ciao Claudio,

    Sarà senza alcun dubbio colpa mia ma non riesco a capire la tua domanda!

    Probabilmente a causa della mia risaputa scarsa padronanza della tua bella lingua, leggendo la tua domanda ho la netta sensazione di  nuotare nella melassa con occhi bendati e mani legate dietro la schiena! :-))

    Quindi, ti prego di avere pietà delle mie limitate capacità linguistiche e interpretative, e di provare a riproporre le tue esigenze come se parlassi ad un bambino.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento