Macro excel VBA complexe sur Filtre auto + récupération des données... - VB/VBA/VBS - Programmation
Marsh Posté le 06-04-2005 à 20:50:54
'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
Marsh Posté le 06-04-2005 à 13:38:48
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.