Existence de fichier et creation de fichier

Bonjour,

je suis novice niveau codage et je ne c'est pas ou mon code pèche, si quel q'un aurait l’amabilité de m'indiqué ou je commet une erreur.

merci d'avance

 
 SlideShowWindows(Index:=1).View.Next

End Sub

Sub suiv12_Click()

  'Initialise les champs
  TkR1 = ""
  TkR2 = ""
  TkR3 = ""
  TkR4 = ""

    'Nom  de la personne
    TkR1 = TextBox1.Value

    'Adresse  de la personne
    TkR2 = TextBox2.Value

    'Email de la personne
    TkR3 = TextBox3.Value

    'autres infos
    TkR4 = TextBox4.Value
 ' variable
 Dim chemin_dossier As String

 ' identifier le chemin du dossier
 chemin_dossier = "C:\Users\Joker\Desktop\projet 2\"

' Test l'existence du fichier
If Dir(chemin_dossier, vbDirectory) <> vbNullString Then

     Open "FICHTEST.csv" For Output As #1    ' Création du fichier en écriture.
    'Open "FICHTEST" For Random As #1
        Print #1, "nom"; ";"; "adresse"; ";"; "email"; ";"; "Autres"
    Close #1

 Else

Open "FICHTEST.csv" For Append As #1 ' Ouvre le fichier en écriture.
Print #1, TkR1; ";"; TkR2; ";"; TkR3; ";"; TkR4 ' Écrit le texte dans le fichier.

  TextBox1.Value = ""
  TextBox2.Value = ""
  TextBox3.Value = ""
  TextBox4.Value = ""

  Close #1    ' Ferme le fichier.
End If

End Sub

Bonjour,

Voici un essai :

Sub suiv12_Click()

Dim dossier As String

TkR1 = TextBox1.Value
TkR2 = TextBox2.Value
TkR3 = TextBox3.Value
TkR4 = TextBox4.Value

dossier = "C:\Users\Joker\Desktop\projet 2\"
chemin = dossier & "FICHTEST.csv"
' Test l'existence du fichier
If Dir(chemin) <> "" Then
    Open chemin For Output As #1    ' Création du fichier en écriture.
    Print #1, "nom"; ";"; "adresse"; ";"; "email"; ";"; "Autres"
    Close #1
Else
    Open chemin For Append As #1 ' Ouvre le fichier en écriture.
    Print #1, TkR1; ";"; TkR2; ";"; TkR3; ";"; TkR4 ' Écrit le texte dans le fichier.
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    Close #1    ' Ferme le fichier.
End If

End Sub

Cdlt,

Bonjour tout le monde.

Une contribution expliquée : tu peux laisser les n° de ligne pour tester le code tel quel, elles seront traitées comme des étiquettes.

Private Sub CommandButton1_Click()

1    Dim dossier As String, sdossier As String, tablo() As String
2    Dim i As Integer
3
4    dossier = "C:\Users2\Joker\Desktop\projet 2\"
5    ' Si le dossier n'existe pas, on le crée
6    If Dir(dossier, vbDirectory) = "" Then
7        tablo = Split(dossier, "\")
8        For i = 0 To UBound(tablo) - 1
9            sdossier = sdossier & tablo(i) & "\"
10            If i > 0 Then
11                MkDir Left(sdossier, Len(sdossier) - 1)
12            End If
13        Next i
14    End If
15
16    ' Maintenant le dossier existe
17    If Dir(dossier & "FICHTEST.csv", vbNormal) = "" Then
18        ' Si le fichier n'existe pas on le crée avec la barre des titres
19        Open dossier & "FICHTEST.csv" For Output As #1
20            Print #1, "nom;adresse;email;Autres"
21        Close #1
22    Else
23        ' sinon on le remplit avec le formulaire
24        Open dossier & "FICHTEST.csv" For Append As #1
25            Print #1, TkR1 & ";" & TkR2 & ";" & TkR3 & ";" & TkR4
26        Close #1
27    End If
28    Unload Me

   End Sub

A la ligne 4, j'ai remplacé le dossier c:\Users par c:\Users2 parce que pour écrire dans c:\Users (qui est un dossier système), il y a une procédure d'administration qui serait compliquée et hors sujet. Si tu mets en place une gestion d'erreur, tu devrais obtenir une erreur 75.

De la ligne 6 à 14 on crée la série des sous-dossiers en cascade, car il n'est pas possible de créer directement le sous-dossier "C:\Users2\Joker\Desktop\projet 2\".
On aurait aussi bien pu écrire :
MkDir"C:\Users2"
MkDir "C:\Users2\Joker"
MkDir "C:\Users2\Joker\Desktop"
MkDir "C:\Users2\Joker\Desktop\projet 2\"
mais un tableau est plus pratique (à mon avis) pour faire ça, même si c'est plus difficile à lire.

A la ligne 20 tu t'es cassé la tête pour rien en cherchant à mettre des séparateurs : on va plus vite avec

Print #1, "nom;adresse;email;Autres"

Le reste, tu sais faire. Bonne journée à vous.

Rechercher des sujets similaires à "existence fichier creation"