VBA Excel: Remplir un fichier Excel
rourouriri
Messages postés
25
Statut
Membre
-
seblekiller_oupas Messages postés 397 Statut Membre -
seblekiller_oupas Messages postés 397 Statut Membre -
Bonjour,
Etant débutante en Excel je demande secours à vous, en fait je cherche à remplir un fichier Excel en ayant recours à un fichier, pour l'instant je sais comment faire la fusion mais ça me créer un autre fichier alors que ce que je veux moi est que dans ma feuille active faire les modification voila le code que j'utilise si vous pouvez m'aider ça sera trop gentil de votre part
Sub FusionPage3()
'Définir les variables
Dim Tableau1, Li1&, Co1&
Dim Tableau2, Li2&, Co2&
Dim Tableau3, Li3&, Co3&
'Désactiver la mise à jour de l'écran
Application.ScreenUpdating = False
'Donner à "Fichier_Analyse" le nom du fichier ouvert
Fichier_Analyse = ThisWorkbook.Name
'Ouverture des fichiers
'Chercher le 1er fichier à fusionner
Call RechercheFichier(Chemin, Fichier1_à_Analyser)
Workbooks.Open Filename:=Chemin & "\" & Fichier1_à_Analyser, local:=True
'Chercher le 2ème fichier à fusionner
Call RechercheFichier(Chemin, Fichier2_à_Analyser)
Workbooks.Open Filename:=Chemin & "\" & Fichier2_à_Analyser, local:=True
'Récupération des données Fich1
Windows(Fichier1_à_Analyser).Activate
lig = 1
Do
'Retourner les valeurs des 3 cellules succesives par ligne
x = Cells(lig, 1).Value
y = Cells(lig + 1, 1).Value
z = Cells(lig + 2, 1).Value
w = Cells(lig + 3, 1).Value
v = Cells(lig + 4, 1).Value
'Tester si x, y et z sont toutes vides
If x = "" And y = "" And z = "" And w = "" And v = "" Then
'Si oui sortir de la boucle Do
Exit Do
End If
lig = lig + 1
Loop
'Selectionner les cellulles de A1 jusqu'à la dernière cellule de la colonne C du fich1
Range("A1:D" & lig).Select
'Mettre la selection dans un tableau "Tableau1"
Tableau1 = Selection.Value
'Fermer sans enregistrer les modifications
ActiveWindow.Close savechanges:=False
'Récupération des données Fich2
'Pareil que Fich1
Windows(Fichier2_à_Analyser).Activate
lig = 1
Do
a = Cells(lig, 2).Value
b = Cells(lig + 1, 2).Value
c = Cells(lig + 2, 2).Value
d = Cells(lig + 3, 2).Value
e = Cells(lig + 4, 2).Value
f = Cells(lig + 5, 2).Value
g = Cells(lig + 6, 2).Value
If a = "" And b = "" And c = "" And d = "" And e = "" And f = "" And g = "" Then
Exit Do
End If
lig = lig + 1
Loop
Range("A1:D" & lig).Select
Tableau2 = Selection.Value
ActiveWindow.Close savechanges:=False
'Analyse résultats
ReDim Tableau3(UBound(Tableau1, 1), 4)
Windows(Fichier1_Analyse).Activate
k = 0
For I = LBound(Tableau1, 1) To UBound(Tableau1, 1)
k = k + 1
Tableau3(k, 1) = Tableau1(I, 1)
Tableau3(k, 2) = Tableau1(I, 2)
For j = LBound(Tableau2, 1) To UBound(Tableau2, 1)
If Tableau1(I, 1) <> "" Then
If Tableau1(I, 1) = Tableau2(j, 3) Then
Tableau3(k, 3) = Tableau2(j, 4)
End If
End If
Next j
Next I
'Ecriture données en colonne 1
lig = 1
For I = LBound(Tableau3, 1) To UBound(Tableau3, 1)
Cells(lig, 1).Value = Tableau3(I, 1)
Cells(lig, 2).Value = Tableau3(I, 2)
Cells(lig, 3).Value = Tableau3(I, 3)
Cells(lig, 4).Value = Tableau3(I, 4)
lig = lig + 1
Next I
Beep
Application.ScreenUpdating = True
End Sub
Amicalement
Etant débutante en Excel je demande secours à vous, en fait je cherche à remplir un fichier Excel en ayant recours à un fichier, pour l'instant je sais comment faire la fusion mais ça me créer un autre fichier alors que ce que je veux moi est que dans ma feuille active faire les modification voila le code que j'utilise si vous pouvez m'aider ça sera trop gentil de votre part
Sub FusionPage3()
'Définir les variables
Dim Tableau1, Li1&, Co1&
Dim Tableau2, Li2&, Co2&
Dim Tableau3, Li3&, Co3&
'Désactiver la mise à jour de l'écran
Application.ScreenUpdating = False
'Donner à "Fichier_Analyse" le nom du fichier ouvert
Fichier_Analyse = ThisWorkbook.Name
'Ouverture des fichiers
'Chercher le 1er fichier à fusionner
Call RechercheFichier(Chemin, Fichier1_à_Analyser)
Workbooks.Open Filename:=Chemin & "\" & Fichier1_à_Analyser, local:=True
'Chercher le 2ème fichier à fusionner
Call RechercheFichier(Chemin, Fichier2_à_Analyser)
Workbooks.Open Filename:=Chemin & "\" & Fichier2_à_Analyser, local:=True
'Récupération des données Fich1
Windows(Fichier1_à_Analyser).Activate
lig = 1
Do
'Retourner les valeurs des 3 cellules succesives par ligne
x = Cells(lig, 1).Value
y = Cells(lig + 1, 1).Value
z = Cells(lig + 2, 1).Value
w = Cells(lig + 3, 1).Value
v = Cells(lig + 4, 1).Value
'Tester si x, y et z sont toutes vides
If x = "" And y = "" And z = "" And w = "" And v = "" Then
'Si oui sortir de la boucle Do
Exit Do
End If
lig = lig + 1
Loop
'Selectionner les cellulles de A1 jusqu'à la dernière cellule de la colonne C du fich1
Range("A1:D" & lig).Select
'Mettre la selection dans un tableau "Tableau1"
Tableau1 = Selection.Value
'Fermer sans enregistrer les modifications
ActiveWindow.Close savechanges:=False
'Récupération des données Fich2
'Pareil que Fich1
Windows(Fichier2_à_Analyser).Activate
lig = 1
Do
a = Cells(lig, 2).Value
b = Cells(lig + 1, 2).Value
c = Cells(lig + 2, 2).Value
d = Cells(lig + 3, 2).Value
e = Cells(lig + 4, 2).Value
f = Cells(lig + 5, 2).Value
g = Cells(lig + 6, 2).Value
If a = "" And b = "" And c = "" And d = "" And e = "" And f = "" And g = "" Then
Exit Do
End If
lig = lig + 1
Loop
Range("A1:D" & lig).Select
Tableau2 = Selection.Value
ActiveWindow.Close savechanges:=False
'Analyse résultats
ReDim Tableau3(UBound(Tableau1, 1), 4)
Windows(Fichier1_Analyse).Activate
k = 0
For I = LBound(Tableau1, 1) To UBound(Tableau1, 1)
k = k + 1
Tableau3(k, 1) = Tableau1(I, 1)
Tableau3(k, 2) = Tableau1(I, 2)
For j = LBound(Tableau2, 1) To UBound(Tableau2, 1)
If Tableau1(I, 1) <> "" Then
If Tableau1(I, 1) = Tableau2(j, 3) Then
Tableau3(k, 3) = Tableau2(j, 4)
End If
End If
Next j
Next I
'Ecriture données en colonne 1
lig = 1
For I = LBound(Tableau3, 1) To UBound(Tableau3, 1)
Cells(lig, 1).Value = Tableau3(I, 1)
Cells(lig, 2).Value = Tableau3(I, 2)
Cells(lig, 3).Value = Tableau3(I, 3)
Cells(lig, 4).Value = Tableau3(I, 4)
lig = lig + 1
Next I
Beep
Application.ScreenUpdating = True
End Sub
Amicalement
A voir également:
- VBA Excel: Remplir un fichier Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Déplacer colonne excel - Guide
3 réponses
bonjour,
tu à probablement une erreur sur ..
il n'y a que la dernière occurence d'un tableu qui peu être redimentionnée, il te faut changer par
Et bien sur modifier ta macro en conséquence.
Si d'autre erreur (je me suis arrêté à celle là) revient
A+
tu à probablement une erreur sur ..
ReDim Tableau3(UBound(Tableau1, 1), 4)
il n'y a que la dernière occurence d'un tableu qui peu être redimentionnée, il te faut changer par
ReDim Tableau3(4, UBound(Tableau1, 1)
Et bien sur modifier ta macro en conséquence.
Si d'autre erreur (je me suis arrêté à celle là) revient
A+
Je pense que ton probleme viens du fait que tu fermes ton fichier
'Mettre la selection dans un tableau "Tableau1"
Tableau1 = Selection.Value
'Fermer sans enregistrer les modifications
ActiveWindow.Close savechanges:=False
'Récupération des données Fich2
Essaie sans cette partie et cela devrait aller mieux
'Mettre la selection dans un tableau "Tableau1"
Tableau1 = Selection.Value
'Fermer sans enregistrer les modifications
ActiveWindow.Close savechanges:=False
'Récupération des données Fich2
Essaie sans cette partie et cela devrait aller mieux
Bonjour,
Si j'ai bien interpréter le code, tu ouvres 2 fichiers Excel (Fichier1_à_Analyser et Fichier2_à_Analyser), c'est donc que tu te trouves ni dans l'un, ni dans l'autre mais dans un 3ème classeur(Fichier1_Analyse). Tu veux fusionner les données de Fichier1_à_Analyser avec Fichier2_à_Analyser. Là tu rajoutes les données contenues dans le tableau3 dans le classeur Fichier1_Analyse ... d'où ton 3ème fichier. Il faut que tu ouvres de nouveau le fichier que tu veux modifier, que tu l'actives et que tu rajoutes tes données ...
;o)
polux
Si j'ai bien interpréter le code, tu ouvres 2 fichiers Excel (Fichier1_à_Analyser et Fichier2_à_Analyser), c'est donc que tu te trouves ni dans l'un, ni dans l'autre mais dans un 3ème classeur(Fichier1_Analyse). Tu veux fusionner les données de Fichier1_à_Analyser avec Fichier2_à_Analyser. Là tu rajoutes les données contenues dans le tableau3 dans le classeur Fichier1_Analyse ... d'où ton 3ème fichier. Il faut que tu ouvres de nouveau le fichier que tu veux modifier, que tu l'actives et que tu rajoutes tes données ...
;o)
polux
En fait, elle marche bien ma marco le problème c'est qu'elle me crée un 3ème fichier
et moi j'aimerais juste modifier dans le premier c'est ça mon vrai problème :s:s:s:s:s:s:s:s:s
A+
amicalement