Oppure

Loading
12/08/10 21:09
bruco1987
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
aaa
12/08/10 21:59
Poggi Marco
Imposta un ciclo while finchè non trovi una cella libera.

Eventualmente posta il codice per maggiori chiarimenti.
aaa
13/08/10 5:48
bruco1987
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?
aaa
13/08/10 6:06
bruco1987

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
aaa
13/08/10 10:09
jack92
Ciao , prova con :
... 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) ;)
aaa
13/08/10 12:20
bruco1987
Ok provo subito grazie
aaa
13/08/10 12:34
bruco1987
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?

aaa
13/08/10 13:26
jack92
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
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...)
:ot:P.S. Ricorda il tag code quando scrivi del codice;):ot:
aaa