Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Valore inputbox in cella libera
Forum - Visual Basic 6 - Valore inputbox in cella libera

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 23:09
Giovedì, 12/08/2010
Salve ragazzi, ho utilizzato il tasto cerca ma non ho trovato nulla in proposito. Avrei bisogno di sapere come fare  per stampare il valore ottenuto tramite finestra inputbox Nella cella del foglio excel ma solamente se quest'ultima è vuota. Es il nome immesso tramite inputbox è "Mario" e deve essere inserito nel foglio 1 range A2   Ma se questa contiene già del testo allora limmissione passa alla A3. Ho provato cn la funzione if ma non ci sn riuscito. Grazie mille

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:59
Giovedì, 12/08/2010
Imposta un ciclo while finchè non trovi una cella libera.

Eventualmente posta il codice per maggiori chiarimenti.

PM Quote
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 7:48
Venerdì, 13/08/2010
Do While Worksheets("database").Range("A2") = Empty
Worksheets("database").Range("A2") = Label5
Loop


In pratica con questo codice mi stampa il valore della label5 su a2 se è libera, ma se è piena invece di stampare su b2 non mi stampa nulla(penso perchè la condizione che trova è "true") quindi come fare?

PM Quote
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 8:06
Venerdì, 13/08/2010

Private Sub UserForm_Initialize()

Label10.BackStyle = 0

Label1 = UserForm2.Label1
Label2 = UserForm2.Label2
Label3 = UserForm2.Label3
Label4 = UserForm2.Label4
Label5 = UserForm2.Label6

TextBox1 = UserForm2.TextBox1
TextBox2 = UserForm3.TextBox1
TextBox3 = UserForm4.TextBox1
TextBox4 = UserForm5.TextBox1

Dim somma As String
somma = Val(TextBox1) + Val(TextBox2) + Val(TextBox3) + Val(TextBox4)
Label10 = somma

Do While Worksheets("database").Range("A2") = Empty
Worksheets("database").Range("A2") = Label5
Loop


End Sub


ecco il codice del form

PM Quote
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Segnala al moderatore
Postato alle 12:09
Venerdì, 13/08/2010
Ciao , prova con :
Codice sorgente - presumibilmente Visual Basic 6

  1. ... If Worksheets("database").Cells(r,c) = "" Then ...


r e c sono valori numerici interi e servono per indicare la cella (Es . cells(1,1) corrisponde alla cella A1) ;)

PM Quote
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 14:20
Venerdì, 13/08/2010
Ok provo subito grazie

PM Quote
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 14:34
Venerdì, 13/08/2010
Allora con questo codice:

If Worksheets("database").Cells(1, 1) = "" Then
Worksheets("database").Range("A2") = Label5
Else
Worksheets("database").Range("A3") = Label5

mi scrive sempre nella cella "A3" anche se la "A2" è libera.......

mentre con questo:

If Worksheets("database").Cells(1, 1) = "" Then
Worksheets("database").Range("A2") = Label5
Else
Worksheets("database").Range("A3") = Label5

mi scrive sempre nella cella "A2" anche se contiene già un valore, sostituendolo.....

come mai?


PM Quote
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Segnala al moderatore
Postato alle 15:26
Venerdì, 13/08/2010
Codice sorgente - presumibilmente Visual Basic 6

  1. If Worksheets("database").Cells(1, 1) = "" Then
  2. Worksheets("database").Range("A2") = Label5
  3. Else
  4. Worksheets("database").Range("A3") = Label5



mi scrive sempre nella cella "A3" anche se la "A2" è libera.......

Certo la "if" controlla se c'è un valore nella cella A1 e non controlla affatto la cella A2 quindi il codice dovrebbe essere
Codice sorgente - presumibilmente Visual Basic 6

  1. If Worksheets("database").Cells(2 , 1) = "" Then
  2. Worksheets("database").Range("A2") = Label5
  3. Else
  4. Worksheets("database").Range("A3") = Label5


Ricorda che "Cells(righe,colonne)" il primo parametro è il valore numerico della riga mentre il secondo fa riferimento alla colonna (Es. A=1 , B=2 , C=3 , ecc...).Io personalmente uso "Cells" quando devo usare dei cicli(For ,While,ecc...)
:ot:P.S. Ricorda il tag code quando scrivi del codice;):ot:

PM Quote
Avatar
bruco1987 (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/08/2010

Segnala al moderatore
Postato alle 15:59
Venerdì, 13/08/2010
Testo quotato

Postato originariamente da jack92:

Codice sorgente - presumibilmente Visual Basic 6

  1. If Worksheets("database").Cells(1, 1) = "" Then
  2. Worksheets("database").Range("A2") = Label5
  3. Else
  4. Worksheets("database").Range("A3") = Label5



mi scrive sempre nella cella "A3" anche se la "A2" è libera.......

Certo la "if" controlla se c'è un valore nella cella A1 e non controlla affatto la cella A2 quindi il codice dovrebbe essere
Codice sorgente - presumibilmente Visual Basic 6

  1. If Worksheets("database").Cells(2 , 1) = "" Then
  2. Worksheets("database").Range("A2") = Label5
  3. Else
  4. Worksheets("database").Range("A3") = Label5


Ricorda che "Cells(righe,colonne)" il primo parametro è il valore numerico della riga mentre il secondo fa riferimento alla colonna (Es. A=1 , B=2 , C=3 , ecc...).Io personalmente uso "Cells" quando devo usare dei cicli(For ,While,ecc...)
:ot:P.S. Ricorda il tag code quando scrivi del codice;):ot:



Ciao e grazie tante:k:... hai ragione non mi ero reso conto che controllasse la prima cella e non la seconda:rotfl:... modificando come mi hai detto funziona perfettamente, e siamo a metà dell'opera.... adesso il programma dovrebbe proseguire cos'ì per 30 input, cioè la terza volta che immetto l'input(essendo "A2" ed "A3" gia occupate) mi deve scrivere in "A4". Avevo pensato a scrivere 30 if come questa ma non credo funzioni, quindi secondo te come devo fare? ti ringrazio tanto anticipatamente, mi stai dando una grande mano

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo