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: 147
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: 147
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
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
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: 147
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 60 ospiti