Intanto, non capisco perche' ripeti sempre la parte
App.Path & "\" & "Source" & "\" & "Machine" & "\" & TxtName.Text & "\" & txtGruppo10.Text
che mi sembra abbastanza comune alle chiamate ...
All'inizio dovresti usare una variabile
codice:
Dim Rdx As String
Rdx = App.Path & "\" & "Source" & "\" & "Machine" & "\" & TxtName.Text & "\" & txtGruppo10.Text
ed utilizzarla in modo da rendere piu' compatto e leggibile il codice, ad esempio
codice:
.CreateFolder (Rdx)
.CreateFolder (Rdx & "1")
Poi dovresti cercare di scrivere una funzione che raggruppi piu' linee (logicamente unite da uno scopo) ed usarla passandole i parametri.
Inoltre, anche se non conosco il tipo di lavoro che stai facendo, penso che se tu usassi degli array di controlli (per le textbox), potresti usufruire dei cicli per effettuare lo stesso lavoro in poche righe ...
Per finire, il problema della with e' molto probabilmente causato dal fatto che uno dei blocchi IF..ENDIF non e' coerente. E questo fa "sballare" il controllo della "WITH..ENDWITH"