begin process at 2010 02 10 07:52:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Modifier du code vb dans excel par macro


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modifier du code vb dans excel par macro

jeudi 6 juillet 2006 à 12:06:42 | Modifier du code vb dans excel par macro

tournevice

Salut,

je dispose d'une quantité importante de fichier Excel. Dans chacun des fichiers Excel, j'ai écrit en dur, dans du code vb (module), un chemin spécifique vers un répertoire. Ce chemin étant le meme pour tous les fichiers, je voudrais réaliser une macro permettant de modifier pour tous les fichiers, le nouveau chemin, en dur, vers le nouveau répertoire. Je n'arrive pas à résoudre ce problème. Il existe certainement une macro faisant ce travail... Si vous avez une piste, je suis preneur!

Merci
vendredi 7 juillet 2006 à 01:02:30 | Re : Modifier du code vb dans excel par macro

valtrase

Salut,
Voilà un code qui te sera utile

' c_Wks      Le classeur qui contient la macro
' MyMacro    Le nom de la macro
' c_Mod      Le nom du module
' Ligne      la première ligne de la macro à modifier
' c_Change   Le nouveau code sous la forme

' Ex: dans la Macro appelante
' c_Change = "   For i = 1 to 100"
' c_Change = c_Change & vbCrLf & "       Listbox1 = "Fichier & i"
' c_Change = c_Change & vbCrLf & "   Next"


Sub ChangeMacro( _
        c_Wks As Workbook, _
        MyMacro As String, _
        c_Mod As String, _
        Ligne As Long, _
        c_Change As String _
        )


Dim c_Start As Long
  ' On va travailler avec le code
  With c_Wks.VBProject.VBComponents(c_Mod).CodeModule
  ' on recherche la position de la première ligne de la macro
    Start = .ProcBodyLine(MyMacro, 0)
  ' on suprime un nombre de ligne
    .DeleteLines Start + Ligne, 1
  ' Et on insère notre code contenu dans c_change
  
  .InsertLines Start + Ligne, c_Change
  End With
 
End Sub

Cordialement, Jean-Paul  
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé

lundi 17 juillet 2006 à 16:12:58 | Re : Modifier du code vb dans excel par macro

tournevice

Réponse acceptée !

a partir de ce que j'ai trouvé sur le forum j'ai trouvé une solution à mon pb :

Function sChangeCaractere(ByVal laChaine As String, ByVal old_car As String, ByVal new_car As String) As String
    Dim ncar As Integer, lng As Integer, result As String, txt As String
    
    
    lng = Len(old_car)
    txt = laChaine
    
    If lng <= 0 Then
        sChangeCaractere = txt
        
        Exit Function
    End If
    
    On Error GoTo ErrChangeCaractre
    
    If lng <= 0 Or Len(Trim(txt)) <= 0 Then
        sChangeCaractere = txt
        
        Exit Function
    End If
    
    result = vbNullString
    ncar = InStr(txt, old_car)
    
    Do While ncar
        If Len(result) > 0 Then
            If lng > 1 Then
                If ncar = 1 Then
                    result = result & new_car
                Else
                    result = result & Left(txt, ncar - 1) & new_car
                End If
            Else
                result = result & Left(txt, ncar - 1) & new_car
            End If
        Else
            result = Left(txt, ncar - 1) & new_car
        End If
        
        If lng > 1 Then
            txt = Right(txt, Len(txt) - ncar - (lng - 1))
        Else
            txt = Right(txt, Len(txt) - ncar)
        End If
        
        ncar = InStr(txt, old_car)
    Loop
    
    If Len(txt) > 0 Then result = result & txt
    
    sChangeCaractere = result
    
    Exit Function
    
ErrChangeCaractre:
    sChangeCaractere = result
End Function

Sub parcours_arborescence()
    disque = "C"
   chemin = "c:\temp\toto\"
    Set fs = Application.FileSearch
    Set fso = CreateObject("Scripting.FileSystemObject")
With fs
    .LookIn = chemin
    .SearchSubFolders = True
    .Filename = "*.xls"
    If .Execute() > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
         " file(s) found."
        For i = 1 To .FoundFiles.Count
            Set fic = fso.GetAbsoluteFileName(.FoundFiles(i))
            'MsgBox fso.GetAbsolutePathName(.FoundFiles(i))
       
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With

   
End Sub

 

Sub traite_tous_les_fichier_d_un_dossier()
         disque = "C"
         chemin = "c:\temp\toto\"
         fichier_log = chemin & "resultat.log"
         chemin_origine = "T:\toto\tata\titi"
         chemin_nouveau = "c:\temp"

ChDrive (disque)
ChDir (chemin)
Set FSys = CreateObject("Scripting.FileSystemObject")
FSys.DeleteFile (fichier_log)
Set MonFic = FSys.CreateTextFile(fichier_log, False)
If Err.Number = 0 Then

    MonFic.writeLine "Fichiers non traites"

Else
 FSys.DeleteFile (fichier_log)
 Set MonFic = FSys.CreateTextFile(fichier_log, False)
 MonFic.writeLine "Fichiers non traites"
End If


With Application.FileSearch
    Dim fichier_fait As Boolean
    Dim cpt_fait As Long
    Dim cpt_total As Long
    Dim fic As String
    cpt_fait = 0
     '.NewSearch
     .LookIn = chemin
     .SearchSubFolders = True
     '.FileType = msoFileTypeExcelWorkbooks
     .Filename = "*.xls"
         If .Execute > 0 Then
         MsgBox "There were " & .FoundFiles.Count & _
         " file(s) found."
         cpt_total = .FoundFiles.Count
             For i = 1 To .FoundFiles.Count
                   
                    fic = .FoundFiles(i)
                     fichier_fait = False
                     Dim strold As String
                     Dim c_Wks As Workbook
                     Set c_Wks = Workbooks.Open(.FoundFiles(i))
                     'MsgBox c_Wks.Name
                    
                    
                    For j = 1 To Modules.Count
                        With c_Wks.VBProject.VBComponents.Item(j).CodeModule

                      
                        Dim cmpt As Long
                        cmpt = .CountOfLines
                        Dim c_start As Long
 
                       Dim b As Boolean
                       Dim x As Long
                       x = 1
                     
                        b = .Find(chemin_origine, x, 1, -1, -1)
                        If b = True Then
                                Dim temp As String
                                temp = .Lines(x, 1)
                               
                                Dim s_temp As String
                               
                                s_temp = sChangeCaractere(temp, chemin_origine, chemin_nouveau)
                               
                               
                                .ReplaceLine x, s_temp
                                fichier_fait = True
                                cpt_fait = cpt_fait + 1

                        End If
                       End With
                     
                    Next j
                    If Not fichier_fait Then
                        'fic = CStr(FSys.GetAbsoluteFileName(.FoundFiles(i)))
                        MonFic.writeLine (FSys.GetAbsolutePathName(.FoundFiles(i)))
                        'MsgBox FSys.GetAbsolutePathName(.FoundFiles(i))
                    End If
                   
                    c_Wks.Save
                    c_Wks.Close
                    '.FoundFiles.Item(i).Close
             Next i
            
     Else
         MsgBox "Aucun fichier n'a été trouvé."
     End If
End With
MonFic.Close
End Sub



Cette discussion est classée dans : vb, macro, code, excel, modifier


Répondre à ce message

Sujets en rapport avec ce message

help macro excel !! modifier les constantes d'une macro excel via VB !! [ par bloodbiscuit ] Bonjour tout le monde !voila, mon projet consiste a automatiser le traitement de fichier excel. La seul chose que je dois faire, et de modifier les co transfert vers excel sous vb.net [ par the_daren ] Bonjour,Je travaille sous vb.net et excel 2000.J'aimerais tranferer des données vers une feuille excel mais je n'arrive pas a trouver le code qu'il fa Ouvrir excel d'une macro access en VB [ par nquesa ] Bonjour,j'aimerai ouvrir, enregistrer et fermer en cacher un fichier existant excel (version 2000) depuis une macro access en VB.Merci d'avance pour v VB & Excel [ par omarfla ] Sous VB j'ai fait ouvrir une feuille excel sachant que je posséde Windows XP, et quand j'ai exécuté le même code sur Windows 98 ça marche pas (Erreur Cherche code en vb sur Excel [ par Doumai60 ] Salut à tous.Qui saurait me dire quel code afficher pour que la police d'une céllule d'excel change de couleur quand on clique sur un bouton tout en u VB et excel [ par mag1808 ] Bonjour à tous !Voici mon petit pb du jour !Je voudrais générer une macro permettant sous excel de protéger certaines colonnes de ma feuille tout en g modifier les données excel qui sont dans un data a partir de vb [ par g_unit101 ] voila, j'ai inserer un fichier excel dans un data et j'aimerais bien a partir de vb pouvoir modifier, supprimées ou ajouter les données qui sont dans Passage de paramètre à une macro via VB [ par Zorm ] Bonjour à tous.Voici ma question:j'ai une application en VB. A un moment j'appelle un document modele de word qui contient une macro.code: MonWord.run Ajout de code VBA dans une feuille EXCEL via une routine VB ??? possible ???? [ par Nighty ] Bonjour à tous,Voici mon problème. Je fais un programme en Visual Basic et je voudrais pouvoir ajouté des routines dans le code d'une feuille EXCEL do ecrire une macro excel avec vb [ par math85 ] ben tout est dans le titre je croisje voudrai créer une marco excel sur un excel.sheet que je crée avec vb6cette macro devrai s'executer à la fermetur


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales