Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel VBA complexe sur Filtre auto + récupération des données...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro excel VBA complexe sur Filtre auto + récupération des données...

n°1037202
starius
Posté le 06-04-2005 à 13:38:48  profilanswer
 

Bonjour à tous,
 
je dois faire une macro et je dois dire que je rame à mort... J'ai un fichier avec une bdd. Il y a une colonne Ville dans ce fichier. Je voudrais, pour tous les enregistrements de chaque ville, les copier dans un nouveau fichier excel qui se nommera "nom_ville.xls" et qui sera protégé en écriture...
 
Je pensais faire un filtre auto et, par vba, récupérer tous les noms de ville que l'on voit dans la liste déroulante du filtre...  
 
Quelqu'un peut-il m'aider ??? je suis désespéré...
 
Merci d'avance.

mood
Publicité
Posté le 06-04-2005 à 13:38:48  profilanswer
 

n°1038099
scuny
Posté le 06-04-2005 à 20:50:54  profilanswer
 

'Ajouter une feuille à un classeur et la nommer, après vérification
'de la validité du nom et correction si besoin.
'cette fonction est un peu une synthèse d'une fonction de Chip Pearson
'(du même nom : CreateSheet) et de procédures de ChrisV pour vérifier
'la validité d'un nom affecté à une nouvelle feuille
 
Sub TestFeuilles()
Dim sht As Worksheet
  CreateSheet "Rapport du 12/12/2001"
  CreateSheet "azeazeaze*azezaezae/azeazazezerzererertdfgdfgfghfgh?ppoio"
  CreateSheet ""
  CreateSheet "Sommaire"
  Set sht = CreateSheet("La dernière" )
  MsgBox sht.Name
End Sub
 
Function CreateSheet(SheetName As String) As Excel.Worksheet
'avec l'aide de Chip Pearson, mpep et de ChrisV, mpfe
Dim i As Byte
   
  'si le nom de la nouvelle feuille est une chaîne vide -> nom par défaut
  If SheetName = "" Then GoTo ErrH
   
  'si le nom comprend des caractères interdits -> trait d'union
  For i = 1 To Len(SheetName)
    Select Case Mid(SheetName, i, 1)
      Case ":", "/", "\", "?", "*", "[", "]": Mid(SheetName, i, 1) = "-"
    End Select
  Next
   
  'si le nom est trop long -> tronqué à 31 caractères
  If Len(SheetName) > 31 Then
    SheetName = Left(SheetName, 31)
  End If
   
  'si la feuille existe déjà -> renvoi de la feuille existante
  On Error GoTo ErrH:
  Set CreateSheet = ThisWorkbook.Worksheets(SheetName)
  Exit Function
   
ErrH:
 
  'tout est OK -> création de la feuille
  Set CreateSheet = ThisWorkbook.Worksheets.Add
  'affectation du nom (ou maintien du nom par défaut)
  If SheetName <> "" Then CreateSheet.Name = SheetName
   
End Function 'fs
 
 
voila ce que j'ai en exemple pour une feuille
a toi de faire varier sheetname pour avoir tout tes noms


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel VBA complexe sur Filtre auto + récupération des données...

 

Sujets relatifs
Macro - passage de variables dans 2 procéduresrappeler une feuille Excel
Requêtes SQL sur une base de données ACCESS en réseau ?Macro tableau croisé dynamique en vb
[J2ME] Besoin d'explication sur les données persistentesProbleme creation de fichier excel a partir de php
Exportation automatique d'une base de données Mysqlconnaitre le N° de la ligne VBA Word 2000
Excel et le tri par codeContrôle/fonctions Windows utilisant la base de données TZ
Plus de sujets relatifs à : Macro excel VBA complexe sur Filtre auto + récupération des données...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR