bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/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
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Imposta un ciclo while finchè non trovi una cella libera.
Eventualmente posta il codice per maggiori chiarimenti.
|
|
bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/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?
|
|
bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/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
|
|
jack92 (Member)
Pro
Messaggi: 100
Iscritto: 06/08/2010
|
Ciao , prova con :
Codice sorgente - presumibilmente Visual Basic 6 |
... 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)
|
|
bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/08/2010
|
Ok provo subito grazie
|
|
bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/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?
|
|
jack92 (Member)
Pro
Messaggi: 100
Iscritto: 06/08/2010
|
Codice sorgente - presumibilmente Visual Basic 6 |
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.......
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 |
If Worksheets("database").Cells(2 , 1) = "" Then
Worksheets("database").Range("A2") = Label5
Else
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...)
P.S. Ricorda il tag code quando scrivi del codice
|
|
bruco1987 (Normal User)
Newbie
Messaggi: 10
Iscritto: 10/08/2010
|
Postato originariamente da jack92:
Codice sorgente - presumibilmente Visual Basic 6 |
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.......
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 |
If Worksheets("database").Cells(2 , 1) = "" Then
Worksheets("database").Range("A2") = Label5
Else
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...)
P.S. Ricorda il tag code quando scrivi del codice
|
Ciao e grazie tante ... hai ragione non mi ero reso conto che controllasse la prima cella e non la seconda ... 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 |
|