Copie de données depuis un autre fichier excel

Everlast03

XLDnaute Occasionnel
Bonjour,

J'ai un fichier qui comprend des données, j'aimerai en ajouter, mais faire cela grâce à un userform, c'est à dire je clique sur "Ajouter des données" de la j'arrive sur un "Parcourir" qui me permet de sélectionner mon fichier excel. Celui-ci comprend des relevés journaliers que j'ajouterai a mon tableau. Je voudrais faire en sorte qu'il complète mon premier tableau en fonction de la date (si une date et déjà remplie passer à la suivante...). Une fois que mon fichier est sélectionné, je voudrais pouvoir voir son adresse en dessous de mon bouton comme il est présenté dans la pièce jointe et que je puisse valider en cliquant sur le bouton OK.

J'ai réalisé mon useform mais je ne sais pas trop comment faire pour compléter automatiquement mon fichier excel...

Ps : Je voudrais que le fichier sélectionné pour compléter ne soit pas afficher, c'est à dire qu'on y prélève juste les données pour les placer dans mon tableau puis qu'on le ferme automatiquement.

Je ne sais pas bien comment faire, j'ai réalisé tout ce que je pouvais, je suis à votre disposition pour des questions.

Classeur principal
Classeur secondaire
 

youky(BJ)

XLDnaute Barbatruc
Re : Copie de données depuis un autre fichier excel

Bonjour Everlast03,
Voici le bout de code demandé seulement avec un peu de retard.
Il fait tous ce que tu as demandé si de ma part No-boulette.
Ceci est le code de ton bouton de l'userform.
PS j'ai galéré à cause des dates à l'anglaise d'un coté et Française de l'autre
Bruno
Code:
Private Sub CommandButton1_Click()
Fichier = Application.GetOpenFilename
TextBox1 = Fichier
If Fichier = False Then Exit Sub
Set Wb = GetObject(Fichier)
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To Feuil1.[D65536].End(3).Row
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row
If Cells(lig, 7) = "" Then
If DateValue(Cells(lig, 4)) = DateValue(Wb.Sheets("Données").Cells(k, 2)) Then
Cells(lig, 7) = Wb.Sheets("Données").Cells(k, 3): lig = lig + 1
End If
End If
Next
Wb.Close: Exit Sub
End If
Next
Wb.Close
End Sub
 

Everlast03

XLDnaute Occasionnel
Re : Copie de données depuis un autre fichier excel

Bonjour Everlast03,
Voici le bout de code demandé seulement avec un peu de retard.
Il fait tous ce que tu as demandé si de ma part No-boulette.
Ceci est le code de ton bouton de l'userform.
PS j'ai galéré à cause des dates à l'anglaise d'un coté et Française de l'autre
Bruno

Bonjour bruno, le forum,


Merci beaucoup !
Ça marche !

Bonne journée à tous !
 

Everlast03

XLDnaute Occasionnel
Re : Copie de données depuis un autre fichier excel

Pourquoi ce code ne marche t'il pas ?

C'est pour faire la somme tous les 7 jours :

Code:
Private Sub CommandButton1_Click()
Fichier = Application.GetOpenFilename
TextBox1 = Fichier
If Fichier = False Then Exit Sub
Set Wb = GetObject(Fichier)
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To Private Sub Workbook_Open()
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row
If Cells(lig, 7) = "" Then
If DateValue(Cells(lig, 4)) = DateValue(Wb.Sheets("Données").Cells(k, 2)) Then
Cells(lig, 7) = Wb.Sheets("Données").Cells(k, 3): lig = lig + 1
End If
End If
Next
Wb.Close: Exit Sub
End If
Next
Wb.Close
Call macro2
End Sub


Public Sub macro2()
For i = 12 To 1462 Step 7
un = Cells(i - 7, 7).Value
deux = Cells(i - 6, 7).Value
trois = Cells(i - 5, 7).Value
quatre = Cells(i - 4, 7).Value
cinq = Cells(i - 3, 7).Value
six = Cells(i - 2, 7).Value
sept = Cells(i - 1, 7).Value
total = un + deux + trois + quatre + cinq + six + sept
Cells(i, 8).Value = total
Next
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Copie de données depuis un autre fichier excel

Bonjour,
je n'ai pas tout épluché mais en rouge c'est sur ça coince
dans le For .....
Bruno
Code:
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To [COLOR="Red"]Private Sub Workbook_Open()[/COLOR]
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row
 

Everlast03

XLDnaute Occasionnel
Re : Copie de données depuis un autre fichier excel

Bonjour,
je n'ai pas tout épluché mais en rouge c'est sur ça coince
dans le For .....
Bruno
Code:
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To [COLOR="Red"]Private Sub Workbook_Open()[/COLOR]
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row

Je viens de voir mon erreur certainement due à une fausse manipulation lors d'un copier coller ! Merci pour ta réponse ;)
 

Everlast03

XLDnaute Occasionnel
Re : Copie de données depuis un autre fichier excel

Par contre j'ai l'impression que ça ne marche pas tout le temps...

Pourrais-tu y regarder ? Je joins plusieurs fichiers pour que vous puissiez y regarder et tester par vous même.
Le fichier que j'utilise est le fichier "Hauteurs précipitations", le reste c'est les fichiers que je veux ajouter en cliquant sur ajouter des données...

Les fichiers sont ici !
 

yalou

XLDnaute Nouveau
Re : Copie de données depuis un autre fichier excel

Bonjour Everlast03,
Voici le bout de code demandé seulement avec un peu de retard.
Il fait tous ce que tu as demandé si de ma part No-boulette.
Ceci est le code de ton bouton de l'userform.
PS j'ai galéré à cause des dates à l'anglaise d'un coté et Française de l'autre
Bruno
Code:
Private Sub CommandButton1_Click()
Fichier = Application.GetOpenFilename
TextBox1 = Fichier
If Fichier = False Then Exit Sub
Set Wb = GetObject(Fichier)
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To Feuil1.[D65536].End(3).Row
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row
If Cells(lig, 7) = "" Then
If DateValue(Cells(lig, 4)) = DateValue(Wb.Sheets("Données").Cells(k, 2)) Then
Cells(lig, 7) = Wb.Sheets("Données").Cells(k, 3): lig = lig + 1
End If
End If
Next
Wb.Close: Exit Sub
End If
Next
Wb.Close
End Sub


Bonsoir Youky, Everlast03,

Je profite de ce thread, parce qu'il résoudrait bien mes soucis.

Youky, peux tu m'expliquer ton code afin que je puisse l'adapter dans mon fichier.
Je voudrais utiliser le même userform qu'Everlast03, pour récupérer des données contenues dans 7 cellules [A2:G2] d'un fichier et les copier dans le fichier ouvert à la suite d'autres données [A10:G10] si la ligne est vide sinon en dessous...

Merci.
 

youky(BJ)

XLDnaute Barbatruc
Re : Copie de données depuis un autre fichier excel

Bonjour
Je suis souvent à la bourre . . .
EVERLAST,
il faut supprimer un If et End if car je voulais écrire que si la cellule était vide et parfois c'est déja écrit . . .
Supprime ce qui est en rouge
Yalou patiente encore un peu mais je répondrais rapidement
Bruno
Code:
Private Sub CommandButton1_Click()
Fichier = Application.GetOpenFilename
TextBox1 = Fichier
If Fichier = False Then Exit Sub
Set Wb = GetObject(Fichier)
madate = DateValue(Wb.Sheets("Données").[B2])
For lig = 3 To Feuil1.[D65536].End(3).Row
If DateValue(Cells(lig, 4)) = madate Then
For k = 2 To Wb.Sheets("Données").[B65536].End(3).Row
[COLOR="red"]'If Cells(lig, 7) = "" Then[/COLOR]
If DateValue(Cells(lig, 4)) = DateValue(Wb.Sheets("Données").Cells(k, 2)) Then
Cells(lig, 7) = Wb.Sheets("Données").Cells(k, 3): lig = lig + 1
End If
[COLOR="red"]'End If[/COLOR]
Next
Wb.Close: Exit Sub
End If
Next
Wb.Close
Call macro2
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Copie de données depuis un autre fichier excel

Yalou,
Voiçi avec des explications sommaires.
Non testé . . . .
Bruno
Code:
Private Sub CommandButton1_Click()
Fichier = Application.GetOpenFilename
'TextBox1 = Fichier
If Fichier = False Then Exit Sub
'trouver ligne vide sur feuille active
lig = IIf([A10] = "", 10, [A65536].End(xlUp).Row + 1)
'cela reviens au mm que
'If [A10] = "" Then
'lig = 10
'Else
'lig = [A65536].End(xlUp).Row + 1
'End If
Set Wb = GetObject(Fichier)
'rectifier le nom de l'onglet Wb.Sheets(????
Range("A" & lig & ":G" & lig).Value = _
Wb.Sheets("Données").[A2:G2].Value
Wb.Close
End Sub
 

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC