Macro fichier de synthèse
Dernière réponse : dans Programmation
Bonjour à tous,
je débute en VBA et je souhaite réaliser un fichier excel de synthèse grace à une macro reprenant plusieurs fichiers excel dans un répertoire. Tous ont le même format. J'ai commencé avec le code suivant :
Mes questions sont les suivantes :
- Comment faire pour que sur mon fichier de synthèse ma boucle commence par exemple à la cellule A9 et non A1 comme c'est le cas actuellement ?
- Que dois je faire pour continuer à rapatrier des informations, par exemple à partir de la cellule B9 de mon fichier de synthèse (cellule des fichiers source = C128 par exemple)
Merci pour vos réponses,
Djoul
je débute en VBA et je souhaite réaliser un fichier excel de synthèse grace à une macro reprenant plusieurs fichiers excel dans un répertoire. Tous ont le même format. J'ai commencé avec le code suivant :
Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Application.ScreenUpdating = False
Direction = Dir("C:\Documents and Settings\Administrateur\Mes documents\Essai macro\*.xls")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
Y = Y + 1
With ActiveSheet.Cells(Y, 1)
.Formula = "='C:\Documents and Settings\Administrateur\Mes documents\Essai macro\[" & Tableau(X) & "]Supplier Profile" & "'!" & "C103"
.Value = .Value
End With
End If
Next X
End If
Application.ScreenUpdating = True
End Sub
Mes questions sont les suivantes :
- Comment faire pour que sur mon fichier de synthèse ma boucle commence par exemple à la cellule A9 et non A1 comme c'est le cas actuellement ?
- Que dois je faire pour continuer à rapatrier des informations, par exemple à partir de la cellule B9 de mon fichier de synthèse (cellule des fichiers source = C128 par exemple)
Merci pour vos réponses,
Djoul
Autres pages sur : macro fichier synthese
Lassé par la pub ? Créez un compte
- Initialiser Y serait déjà pas mal car commencer par lui affecter Y+1 c'est très sale et mal, après tu commences de la valeurs que tu souhaites.
- Logiquement tu devrais ouvrir les classeurs sources à la chaine et les parcourir pour récupérer les informations. et ainsi de suite pour tout le répertoire.
- Logiquement tu devrais ouvrir les classeurs sources à la chaine et les parcourir pour récupérer les informations. et ainsi de suite pour tout le répertoire.
Juste pour info : Un utilitaire qui permet de formater du code VBA
http://www.oaltd.co.uk/Indenter/Default.htm
http://www.oaltd.co.uk/Indenter/Default.htm
kiki29:
Il y a des trucs comme ça pour le VB !?
(Remarque, je connaissais bien les "beautifiers" pour le code C.)
Plus aucune raison de ne plus présenter son code correctement dorénavant
Je te cite là http://www.presence-pc.com/forum/ppc/Programmation/vous...
(Désolé, j'ai un tout petit peu modifié ton message, Formater ne me plaisait pas, VBA est trop restrictif.)
Il y a des trucs comme ça pour le VB !?(Remarque, je connaissais bien les "beautifiers" pour le code C.)
Plus aucune raison de ne plus présenter son code correctement dorénavant
Je te cite là http://www.presence-pc.com/forum/ppc/Programmation/vous...
(Désolé, j'ai un tout petit peu modifié ton message, Formater ne me plaisait pas, VBA est trop restrictif.)
Merci à tous pour votre aide, j'avais mis ce travail un peu entre parenthèses mais j'ai réussi à avancer. J'ai maintenant une autre question. Ci dessous mon code qui marche nickel, mais je bute sur quelque chose :
Comment faire pour concatener 2 cellules de mon fichier d'origine dans mon fichier de destination avec un retour ligne entre les 2 si possible. (Ex : C103 et C104 en Y2). J'ai essayé plusieurs solutions (&;+) qui ne marche pas, genre qui me retourne "vrai" et faux" ou #valeur.
Merci d'avance
Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Application.ScreenUpdating = False
Direction = Dir("C:\Documents and Settings\Administrateur\Mes documents\Essai macro\*.xls" )
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
Y=8
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
Y = Y + 1
With ActiveSheet.Cells(Y, 1)
.Formula = "='C:\Documents and Settings\Administrateur\Mes documents\Essai macro\[" & Tableau(X) & "]Supplier Profile" & "'!" & "C103"
.Value = .Value
End With
With ActiveSheet.Cells(Y, 2)
.Formula = "='C:\Documents and Settings\Administrateur\Mes documents\Essai macro\[" & Tableau(X) & "]Supplier Profile" & "'!" & "C103"
.Value = .Value
End With
End If
Next X
End If
Application.ScreenUpdating = True
End Sub
Comment faire pour concatener 2 cellules de mon fichier d'origine dans mon fichier de destination avec un retour ligne entre les 2 si possible. (Ex : C103 et C104 en Y2). J'ai essayé plusieurs solutions (&;+) qui ne marche pas, genre qui me retourne "vrai" et faux" ou #valeur.
Merci d'avance
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumMacro selectionner un fichier
- ForumMacro ouverture d'un fichier
- ForumMacro renommer fichier
- ForumMacro copie fichier
- ForumMacro copier un fichier
- ForumMacro sauvegarde fichier
- ForumMacro dã placer fichier
- ForumMacro excel fichier
- ForumMacro crã ation fichier
- ForumMacro enregistrer fichier
- Voir plus
et
permettent de modifier un message. Pratique pour mettre ses messages en conformité !
De Carriage Return et de Line Feed bien sûr, dits aussi CR et LF voire 13 et 10