VBA Excel: Remplir un fichier Excel

rourouriri Messages postés 25 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
A voir également:

3 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
bonjour,
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+
0
rourouriri Messages postés 25 Statut Membre 2
 
Bonjour,

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
0
zavenger Messages postés 817 Statut Membre 161
 
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
0
Polux31 Messages postés 7219 Statut Membre 1 204
 
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
0
seblekiller_oupas Messages postés 397 Statut Membre 5
 
Bonjour pollux31

C'est juste pour savoir si tu pouvais m'aider vite fait ou pas?

Desole de mettre incruster
et merci qu'elle que soit la reponse
0
Polux31 Messages postés 7219 Statut Membre 1 204 > seblekiller_oupas Messages postés 397 Statut Membre
 
Bonjour,

Dis toujours ton problème, si je peux t'aider, ça sera avec plaisir.

;o)
0
seblekiller_oupas Messages postés 397 Statut Membre 5 > Polux31 Messages postés 7219 Statut Membre
 
tres bien je te remercie desole de m'y prendre comme ca mais je cherche des solutions!!!!! bref voila

http://www.commentcamarche.net/forum/affich 6289684 pb avec liste et sous formulair
0