begin process at 2012 02 14 11:59:36
  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 Graphique VB/Excel [ par fred le novice ] Bonjour a tous. g éssayé d'insérer une macro a un graphique excel lorsque l'on click dessus. Problème: Vb me renvoie:"la méthode 'Range' de l'objet'_G export de feuille excel en pdf via les macro ou vb [ par tamera55 ] Comment exporter des feuilles excel au format PDF en automatisant l'export via les macro en vb?MerciTam execution macro Excel via VB [ par GroSam ] Salut! Voila j'aimerais executer une macro perso qui se trouve dans un fichier Excel à partir de VB.. j'essaye d'utiliser application.ExecuteExcel4Ma modifier un graphique par du code vb sous excel [ par benbill ] Bonjour, J'aimerai modifier l'axe des ordonnées d'un graphique par une valeur qui se trouve dans une case d'une feuille  sous excel en utilisant vb.Pr Excel : une macro génère un code bugger...? [ par ricomiracle ] Bonjour, Je voudrais faire sous Excel une fonction qui copie (la propriété validation seulement ) d'une plage de cellule vers une autre. J'ai commencé Excel VB et VBA [ par ricomiracle ] Bonjour, Je développe un programme VB qui propose à l'utilisateur un classeur Excel pour rentrer des données. L'utilisateur dispose d'une barre d'outi Comment fais ton^pour insérer une image en code vb dans excel [ par fanjio ] Merci à Yoyo2b qui à repondu tout à l'heure!maintenant suite à ta réponse, je souhaite savoir comment insérer une image en code vb.et comment faire po Allocation valeur a variable sous excel avec macro vb running [ par frosenfeld ] Bonjour a tous, je me suis plante de categorie alors je reposte ici, desole c'est pas du spam, et merci de votre aide! Ma question est la suivante: Probleme urgent: Modification de variables d'une macro vb sous excel alors qu'elle s'execute. [ par frosenfeld ] Bonjour tout le monde, premier post et merci de votre aide deja trouvee sur le forum! Ma question est la suivante: -j'ai une grosse proc vb tournant


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,841 sec (3)

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