creer un nouvel onglet

alexou4281

XLDnaute Nouveau
bonjour

Je voudrai apres avoir demander à l'utilisateur d'ouvrir des fichiers.txt que ces fichiers ouvrent à la suite dans un meme classeur sur 3 onglets (si 3 fichiers sont ouverts)..Avec ce prog, il y a 3 classeurs qui s'ouvrent.

Je demarre dans la prog vba alors j'ai commencé un code mais pas joli joli.
si vous avez des suggestions? je pense faire une boucle DO pour enlver les 2 repetitions mais je sais pas comment la formuler..
Merci de votre aide

Sub conversionetouverture()
On Error Resume Next

'Déclaration des variables
Dim reponse As Integer

'Ouverture du fichier, et conversion en classeur excel,

fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

reponse = InputBox("VOulez vous ouvrir un autre fichier:", vbYesNo)

If reponse = vbNo Then Exit Sub
Sheets(Worksheets.Count).Copy After:=Sheets(Worksheets.Count)
fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

reponse = InputBox("VOulez vous ouvrir un autre fichier:", vbYesNo)

If reponse = vbNo Then Exit Sub
fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

End Sub
 

skoobi

XLDnaute Barbatruc
Re : creer un nouvel onglet

Bonjour alexou4281,

voici ton code avec la boucle Do.... Loop

Sub conversionetouverture()
On Error Resume Next

'Déclaration des variables
Dim reponse As Integer

'Ouverture du fichier, et conversion en classeur excel,

fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

Do
reponse = InputBox("VOulez vous ouvrir un autre fichier:", vbYesNo)

If reponse = vbNo Then Exit Do
Sheets(Worksheets.Count).Copy After:=Sheets(Worksheets.Count)
fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

Loop

End Sub
 

alexou4281

XLDnaute Nouveau
Re : creer un nouvel onglet

ça marche pas..

On me demande toujours si je veux ouvrir un autre fichier meme quand je click sur annuler. Le systeme tourne en boucle sans jamais s'arreter.
En plus, il m'ouvre encore les fichiers sur differentes feuilles alors que j'aimerai utiliser qu'une seule fueille et differents onglets.

Merci
 

skoobi

XLDnaute Barbatruc
Re : creer un nouvel onglet

Re,

il faut au préalable enregistrer le fichier temporaire créé lors de la 1ere conversion puis démarrer la boucle en remettant le code d'ouverture et conversion après "l'inputbox" puis fermer le fichier texte en fin de boucle:
 

alexou4281

XLDnaute Nouveau
Re : creer un nouvel onglet

je suis dsl mais je comprends pas ce que tu me racontes.

Tu pourrais me rexpliquer stp.:eek:
merci

j'ai changé le sub et je reste avec ça:
Pourquoi ça fonctionne pas (FOnctionne qu'une seule fois qd je clik sur Accepter)

Sub conversionetouverture()
On Error Resume Next

'Déclaration des variables
Dim reponse As Integer


Do
reponse = InputBox("VOulez vous ouvrir un autre fichier:", vbYesNo)
If reponse = vbNo Then Exit Do

fichier = Application.GetOpenFilename("Fichiers texte (*.txt),*.txt", , "Choisir un fichier *.txt")
Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, _
StartRow:=95, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

Loop While reponse = vbYes

End Sub
 
Dernière édition:

alexou4281

XLDnaute Nouveau
Re : creer un nouvel onglet

Ya qq'un svp..je suis en rade et je comprends pas mon erreur..:confused:

Je pense que le probleme doit venir de vbYesNo. Quand on appuye sur la touche accpeter, la traduction informatique est bien un Yes?
Touche Annuler la traduction informatique est bien un NO?

Faut t'il initlialiser des valeurs? quelles sont les valeurs ASCII de ces touches?

Je rame à fond et je coule..j'arrive pas à trouver d'aide m'expliquant comment faire...p etre je m'y prends mal.

Merci
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz