Copier cellules Excel dans un autre fichier Excel

ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008 - 24 sept. 2008 à 18:06
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 24 sept. 2008 à 21:13
Bonjour, je cherche à faire quelque chose de simple, je suis sur que cela à déja été demandé, mais j'ai du mal a chercher dans tant de messages.
Ca fait quelque jour que j'apprends les macros, j'ai réussi à créer un bouton qui enregistre le fichier dans un dossier prédéfini, avec comme nom l'emplacement d'une cellule et la date.
Voici un croquis de ce que je voudrais maintenant faire, je voudrais simplement qu'un bouton macro dans mon fichier "FICHIER_SEND", prenne les valeurs des cellules "A1", "B2", et "C3" par exemple, et les copie dans la prochaine ligne vide de mon fichier "FICHIER_RECEPT" à partir de la ligne "A3".
Merci =)

9 réponses

ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 18:21
Voici ce que j'ai déja:

' Configuration/Ouverture des fichiers '

Dim Fichier_envoi As Workbook
Dim Fichier_reception As Workbook
Set Fichier_envoi = ActiveWorkbook
Set Fichier_reception = Application.Workbooks.Open("Macintosh HD:Users:imac:Documents:2008:Fichier_reception.xls")

Range("A1").Select
ActiveCell.FormulaR1C1 = Range("A3").Value (Comment faire pour que cette ligne de code s'applique sur le Fichier_reception ?)(Et pour que ca "trouve" la prochaine ligne vide ?)

' Ferme le Fichier_reception
Call W2.Close(True)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 sept. 2008 à 18:33
Salut,

pas dans le bon theme ! pour Excel et plus largement le VBA le bon theme est ici :

Thèmes / [forum-VISUAL-BASIC_1.aspx Visual Basic 6] / [theme-LANGAGES-DERIVES_287.aspx Langages dérivés] / [theme-VBA_244.aspx VBA] /

Dim LigneVide as long
LigneVide = Columns("A").Find("*", Range("A3"),), , xlByRows, xlPrevious).Row + 1
With Workbooks("Fichier_reception.xls")
    .Range("A" & LigneVide).Value = ActiveWorkbook.Range("A1").Value
    .Range("B" & LigneVide).Value = ActiveWorkbook.Range("B2").Value
    .Range("C" & LigneVide).Value = ActiveWorkbook.Range("C3").Value
End With

voila une solution parmis d'autre mais qui sert surtout a te donner une piste

A+
0
ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 18:58
Merci bigfish je pense qu'avec ça j'y arriverais :P
Dsl pour le thème ^_^
0
ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 19:37
J'ai encore un problème :(

Une fois le nouveau fichier ouvert, ActiveWorkbook devient le fichier de reception, et
ActiveWorkbook.Range("C1").Value fait bugger mon macro.

Comment récupérer la valeur de la case "C1" de mon fichier de base ?
en sachant que FileSend correspond à ce fichier.
-----
Dim FileSend As Workbook
Set FileSend = ActiveWorkbook
-----
ouverture du nouveau fichier etc (avec fonction LigneVide)
-----

    Range("A" & LigneVide).Select
    ActiveCell.FormulaR1C1 = FileSend.Range("C1").Value (???!!!)

Merci -_-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 sept. 2008 à 19:50
ouups ! effectivement !

Dim LigneVide as long

With Workbooks("Fichier_reception.xls")
    LigneVide = .Columns("A").Find("*", .Range("A3"),), , xlByRows, xlPrevious).Row + 1
    .Range("A" & LigneVide).Value = ActiveWorkbook.Range("A1").Value
    .Range("B" & LigneVide).Value = ActiveWorkbook.Range("B2").Value
    .Range("C" & LigneVide).Value = ActiveWorkbook.Range("C3").Value
End With

Attention aux points ils sont essentiels
0
ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 20:34
LigneVide = .Columns("A").Find("*", .Range("A3"),), , xlByRows, xlPrevious).Row + 1

Je pense qu'il y'a une parenthèse de trop (comme ca ca marche, mais avec le point ca marche plus)
LigneVide = Columns("A").Find("*", .Range("A3"), , , xlByRows, xlPrevious).Row + 1
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 sept. 2008 à 20:50
ah oui aussi j'ai mes doigts qui on fourché !
0
ZoOoOoP Messages postés 6 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 21:07
C'est bon je me suis débrouillé plus simplement, j'ai enregistré les variables que je voulais avant de les réstitué une fois le nouveau document ouvert
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 sept. 2008 à 21:13
je fais autre chose en meme temps et je regarde pas ce que tu me donnes.Pour repondre completement a ton precedent message, oui il y a une parenthese de trop mais toi tu n'as pas non plus respecter le fait que tous les points sont essentiels

With Workbooks("Fichier_reception.xls")
    LigneVide = .Columns("A").Find("*", .Range("A3"), , , xlByRows, xlPrevious).Row + 1
    .Range("A" & LigneVide).Value = ActiveWorkbook.Range("A1").Value
    .Range("B" & LigneVide).Value = ActiveWorkbook.Range("B2").Value
    .Range("C" & LigneVide).Value = ActiveWorkbook.Range("C3").Value
End With
0
Rejoignez-nous