Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba excel inserimento casuale testo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba excel inserimento casuale testo

Postdi macio66 » 10/01/17 19:46

Buonasera

col A col B col C col D
1 a a
postazione 1 2 b b
3 c
1 d
postazione 2 2 a e
3 f
1 b
postazione 3 2
3
1
postazione 4 2
3 a
1
postazione 5 2
3
1
postazione 6 2
3 b

Volevo sapere se è possibile inserire del testo presente in un range ( in questo esempio D1:D6), in modo casuale nella colonna C.
Ogni lettera deve essere inserita facendo riferimento alla colonna B, una volta sulla riga con il valore 1, una volta sulla riga con il valore 2 e una volta sulla riga con il valore 3 (come esempio con le lettere a e b).
Il vincolo è che ogni lettera può essere inserita solamente 3 volte e una sola volta per ogni postazione (ogni postazione ha le tre righe contrassegnate 1,2,3).
Sperando di essere stato chiaro nella mia richiesta, vi ringrazio per il vostro aiuto (sempre se possibile da attuare).
macio66
Utente Senior
 
Post: 106
Iscritto il: 13/06/13 14:59

Sponsor
 

Re: vba excel inserimento casuale testo

Postdi macio66 » 10/01/17 20:01

Vi invio immagine di esempio
Immaginefree image hosting
macio66
Utente Senior
 
Post: 106
Iscritto il: 13/06/13 14:59

Re: vba excel inserimento casuale testo

Postdi wallace&gromit » 11/01/17 09:29

Ciao,
ecco una macro che fa il lavoro richiesto
avvertenza: i range F1:H6 e C1:C18 vengono sovrascritti senza preavviso
Codice: Seleziona tutto
Sub random1()
first = 1: last = 6
ReDim arr(first To last, 1 To 1)
For i = first To last
  arr(i, 1) = i
Next
For i = last To first Step -1
  j = Rnd * (last - first + 1) + first
  If j > last Then j = last
  temp = arr(i, 1)
  arr(i, 1) = arr(j, 1)
  arr(j, 1) = temp
Next
Worksheets("Foglio1").Range("F1:F" & (last - first + 1)) = arr

ripeti2:
first = 1: last = 6
ReDim arr(first To last, 1 To 1)
For i = first To last
  arr(i, 1) = i
Next
For i = last To first Step -1
  j = Rnd * (last - first + 1) + first
  If j > last Then j = last
  temp = arr(i, 1)
  arr(i, 1) = arr(j, 1)
  arr(j, 1) = temp
Next
Worksheets("Foglio1").Range("G1:G" & (last - first + 1)) = arr
For i = 1 To 6
    If Cells(i, 7) = Cells(i, 6) Then GoTo ripeti2
Next i

ripeti3:
first = 1: last = 6
ReDim arr(first To last, 1 To 1)
For i = first To last
  arr(i, 1) = i
Next
For i = last To first Step -1
  j = Rnd * (last - first + 1) + first
  If j > last Then j = last
  temp = arr(i, 1)
  arr(i, 1) = arr(j, 1)
  arr(j, 1) = temp
Next
Worksheets("Foglio1").Range("H1:H" & (last - first + 1)) = arr
For i = 1 To 6
    If Cells(i, 8) = Cells(i, 6) Or Cells(i, 8) = Cells(i, 7) Then GoTo ripeti3
Next i

For j = 1 To 6
For k = 1 To 3
Cells(k + (Cells(j, 5 + k) - 1) * 3, 3) = Cells(j, 5)
Next k
Next j
End Sub
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1562
Iscritto il: 16/01/12 14:21

Re: vba excel inserimento casuale testo

Postdi macio66 » 11/01/17 20:52

Ciao,
funziona perfettamente.
Ti ringrazio per il tuo aiuto, buona serata.
macio66
Utente Senior
 
Post: 106
Iscritto il: 13/06/13 14:59


Torna a Applicazioni Office Windows


Topic correlati a "vba excel inserimento casuale testo":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti