ouverture de fichier a partir d'un bouton

  • Initiateur de la discussion romainchu78
  • Date de début
R

romainchu78

Guest
bonjour a tous,

Comme certains d'entre vous l'on deja vu je poste beaucoup de messages, en effet je travail actuellement sur un projet de tri de donnees et jai besoin d'aide pour developper ce projet. c'est pour cette raison que je me permet de poster de nombreux messages. Je posterais aussi le fruit de mon travail sur le forum une fois fini pour ceux qui veulent.

j'ai une autre requette:

Je souhaite, a partir d'un bouton (creer en visual basic) ouvrir un fichier excel et y copier des donnees. lorsque je clique sur le bouton, une fenetre windows d'explorateur apparait dans laquelle je peux selectionner mon fichier au travers les differents repertoire de momon pc. je souhaite ouvrir au max 10 fichiers excel et donc avoir 10 boutons.

je sais que c'est possible a faire, je l'ai deja vu, mais je sais pas le faire.
quelqu'un sais t'il comment le gerer?

merci beaucoup,
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Romain :)

Bon, j'ai simplifié un peu la procédure : j'efface complètement les données de la feuille de destination avant de copier. Si tu ne le souhaites pas, tu as la possibilité de désactiver les instructions non souhaitées et de les remplacer par celle mise en commentaire en début de procédure :

Sub CopieDonnees(SheetName$())
'
Dim i%
Dim ColDest&
'
  ' si tu ne souhaite pas effacer les données précédentes,
  ' tu peux activer cette instruction au lieu des 2 suivantes :
  '-------------------------------------------------------------
  ' ColDest = Sheets(NomFeuilleDest).Range('A1').Find('*', , _
  ' xlValues, xlWhole, bycolumn, xlPrevious)
  '-------------------------------------------------------------

  ' on commence en colonne A après avoir effacé les données

  Sheets(NomFeuilleDest).Cells.Delete
  ColDest = 1

  For i = 1 To UBound(SheetName)
    If SheetName(i) ‹› '' Then
      With Sheets(Nomfeuiledest)
        Sheets(SheetName(i)).Range('A:A').Copy .Columns(ColDest)
          ColDest = ColDest + 1
      End With
    End If
  Next i
End Sub

A+ ;)
 

Charly2

Nous a quittés en 2006
Repose en paix
re :)

J'ai effectivement fait une erreur de copie dans le nom de la constante NomFeuilleDest, et j'ai omis de te préciser que les signes 'inférieur' et 'supérieur' (soit 'différent de') ne passent pas sur le site. Pour les simuler, on utilise d'autres caractères qui ne sont pas interprétés comme des balises html...

Il fallait donc remplacer ‹› par leurs équivalents clavier :whistle:

[file name=Romainchu78_V2.zip size=31220]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Romainchu78_V2.zip[/file]

A+ ;)
 

Pièces jointes

  • Romainchu78_V2.zip
    30.5 KB · Affichages: 10
  • Romainchu78_V2.zip
    30.5 KB · Affichages: 15
  • Romainchu78_V2.zip
    30.5 KB · Affichages: 14
R

romainchu78

Guest
Salut,
C'est encore moi... Peut tu repondre a cette question? au point ou on en est...
merci


* Je souhaite créer une feuille Excel avec un nom définie par moi-même à l'aide d’un bouton vba. Je sais actuellement créer une feuille, que je suis obligé de renommer après. Le problème c’est que des fois lorsque qu’il me crée la feuille, le nom par default change et il est impossible par la suite de la renommer parce que le nom par default a change. Voici le code actuel:
Sheets.Add
Sheets('Sheet1').Name = 'Temp'

Par default le nom donné est Sheet1.

Comment puis créer une feuille nomme directement « temp » ?

* 2eme question : je souhaite par la suite supprimer cette feuille sans aucun message de demande de sauvegarde ou autre. En gros l’utilisateur ne doit même pas s’apercevoir qu’une nouvelle feuille Excel a été créée et supprimée.
Actuellement j’ai ce code, mais il demandera a l’utilisateur de sauvegarder.
'Sheets('Temp').Select
'ActiveWindow.SelectedSheets.Delete


Comment puis-je supprimer cette feuille « temp » sans aucun message ?
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Romain :)

* Je souhaite créer une feuille Excel avec un nom définie par moi-même à l'aide d’un bouton vba. Je
sais actuellement créer une feuille, que je suis obligé de renommer après. Le problème c’est que des
fois lorsque qu’il me crée la feuille, le nom par default change et il est impossible par la suite
de la renommer parce que le nom par default a change. Voici le code actuel:
Sheets.Add
Sheets('Sheet1').Name = 'Temp'
Par default le nom donné est Sheet1.

Comment puis créer une feuille nomme directement « temp » ?

Le code suivant devrait résoudre ton souci car une feuille créée est automatiquement active :

Application.ScreenUpdating = False
Sheets.Add
ActiveSheet.Name = 'Temp'
'... Suite du code
Aplication.ScreenUpdating = True

Sinon, une autre solution serait de garder une feuille appelée Temp en la cachant lorsque tu n'en as pas besoin par l'instruction :

Sheets('Temp').Visible = xlVeryHidden

ce qui a pour effet de ne pas pouvoir la rendre visible depuis l'interface Excel.

* 2eme question : je souhaite par la suite supprimer cette feuille sans aucun message de demande de
sauvegarde ou autre. En gros l’utilisateur ne doit même pas s’apercevoir qu’une nouvelle feuille
Excel a été créée et supprimée.
Actuellement j’ai ce code, mais il demandera a l’utilisateur de sauvegarder.
'Sheets('Temp').Select
'ActiveWindow.SelectedSheets.Delete

Comment puis-je supprimer cette feuille « temp » sans aucun message ?

Pour ce faire, tu peux utiliser la propriété DisplayAlerts de l'objet Application :

Application.DisplayAlerts = False
Sheets('Temp').Delete
Application.DisplayAlerts = False

Et sans faire de .Select :whistle:

Bonne soirée ;)
 
R

romainchu78

Guest
Bonjour Charly, j’aurais encore une petite question à te poser…on approche de la fin.

Jai 3 colonnes à comparer situees en colonnes A, B et C. Ces 3 colonnes ont des éléments communs. Je veux retenir que les éléments uniques pour chaque colonne.
Jai le code pour faire le tri, mais le problème est que le bouton VBA qui active cette fonction de trie est sur une page « sheet1 » et d’après le code je dois obligatoirement avoir les trois colonnes à comparer sur cette même page avec le bouton. Mais pour les besoins de mon étude, les trois colonnes à trier doivent être sur une autre feuille Excel « sheet2 ». Et en plus le résultat du tri, c’est à dire les 3 nouvelles colonnes devront être place sur une autre feuille et sur les colonnes A, B et C.
Ce qui fait en tout trois feuilles Excel.
- La première contient uniquement le bouton VBA
- La deuxième uniquement les trois colonnes a comparé en A, B et C.
- La troisième colonne contiendra les trois nouvelles colonnes trie (avec uniquement les éléments uniques) en A, B et C

Je n’arrive pas à adapter mon code pour l’utiliser sur plusieurs feuilles. Peux-tu m’aider dessus? Je souhaiterais conserver au mieux la structure de mon code trie.

Tu trouveras ci-joint un fichier Excel de ce que j’ai actuellement. Et un autre fichier de se que je veux.

Merci encore, tu m’as aide vraiment beaucoup j’apprécierais que tu m’aide encore. [file name=test_20060330184356.zip size=28077]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_20060330184356.zip[/file]
 

Pièces jointes

  • test_20060330184356.zip
    27.4 KB · Affichages: 12

Discussions similaires

Réponses
1
Affichages
213
Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
312 310
Messages
2 087 119
Membres
103 478
dernier inscrit
Frederic Lagger