Copie de données sur un autre fichier

ironangel

XLDnaute Occasionnel
Bonjour le forum,

Je dispose actuellement d'une macro qui me permet de copier des données via une msgbox:

Private Sub CommandButton1_Click()

Select Case MsgBox("Voulez-vous ouvrir le classeur ''Macro date.xls'' ?", vbYesNo)
Case vbYes
Workbooks.Open Filename:="C:\Documents and Settings\Dr Banner\Bureau\Macro date.xls"
Workbooks("Macro date.xls").Sheets("Feuil1").Range("C1:C4") = _
Workbooks("Classeur2.xls").Sheets("Feuil1").Range("A1:A4").Value
Case vbNo
Exit Sub
End Select

End Sub

J'aimerais l'adapter, en effet je ne veux pas qu'elle prenne des valeur fixe mais plutot les dernieres valeurs complétées avant une ligne vide.
Quelqu'un aurait une idée?

Cordialement
 

ironangel

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

Bonjour,

Je pense qu'il doit falloir introduire une phrase variable avec "x" mais je n'arrive pas à la formuler et trouver un endroit ou l'introduire.

Merci d'avance à vous

Cordialement
 

Cousinhub

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

Bonjour,

si j'ai bien compris, Derlig calcule la dernière ligne remplie de la colonne A

Code:
Dim DerLig As Long
Select Case MsgBox("Voulez-vous ouvrir le classeur ''Macro date.xls'' ?", vbYesNo)
Case vbYes
    With Workbooks("Classeur2.xls").Sheets("Feuil1")
        DerLig = .Range("65000").End(xlUp).Row
        Workbooks.Open Filename:="C:\Documents and Settings\Dr Banner\Bureau\Macro date.xls"
        Sheets("Feuil1").Range("C1:C" & DerLig).Value = .Range("A1:A" & DerLig).Value
    End With
Case vbNo
    Exit Sub
End Select
 

ironangel

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

Merci de ton aide,

Mais ça bug, en effet quand je copie cela, il me met "il n'y a pas de select case" alors que pourtant il y en a un,

Du coup j'ai essayé de laisser la phrase "Workbooks.Open Filename..."
et la il me met que le ".Range" apres le Derlig n'est pas défini.

Merci de ton retour et de ton temps

Amicalement
 
G

Guest

Guest
Re : Copie de données sur un autre fichier

Bonjour le fil,
Hello Bh²:),

Pour le select case, tu peux remplacer par :

Code:
If MsgBox("Voulez-vous ouvrir le classeur ''Macro date.xls'' ?", vbYesNo) =vbYes then
 
  '--------Ouverture du fichier
End if

A bientôt
 

ironangel

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

Voici le code,
j'ai ajouté le "A" comme tu m'as dit, mais il me met toujours: "case sans select case" pourtant voici le code:

Sub Copie()
Dim Derlig As Long
Select Case MsgBox("Voulez-vous ouvrir le classeur ''Etiquette de teinte.xls'' ?", vbYesNo)
Case vbYes
With Workbooks("Etiquette de teinte.xls").Sheets("Feuil1")
Derlig = .Range("A65000").End(xlUp).Row
Workbooks("Etiquette de teinte.xls").Sheets("Feuil1").Range("AA2").Value = Workbooks("Déclaration BAT.xls").Sheets("Feuil1").Range("A4").Value
Case vbNo
Exit Sub
End Select

End Sub

Merci d'avance.

Cordialement
 

ironangel

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

Ok merci pour le End with,

mais toujours un probleme, si je laisse la phrase "With Workbooks" la macro bug au niveau de cette phrase, je pense que c'est parce qu'elle ne sait pas ou chercher le fichier,

Si je laisse ma phrase, à savoir Workbooks. Open, elle bug au niveau du derlig = .Range, car il ne le reconnait pas

Merci d'avance

Amicalement
 

Cousinhub

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

Re-,

euh, je ne sais pas si j'ai compris ta demande....

essaie ainsi :

Code:
Sub Copie()
Dim Derlig As Long
Select Case MsgBox("Voulez-vous ouvrir le classeur ''Etiquette de teinte.xls?''", vbYesNo)
    Case vbYes
        With Workbooks("Déclaration BAT.xls").Sheets("Feuil1")
            Derlig = .Range("A65000").End(xlUp).Row
            Workbooks.Open Filename:="C:\Documents and Settings\Dr Banner\Bureau\Etiquette de teinte.xls"
            Range("AA2").Resize(Derlig - 3, 1).Value = .Range("A4:A" & Derlig).Value
        End With
    Case vbNo
        Exit Sub
End Select
End Sub

PS, quand tu postes du code, pense à le mettre en balises "Codes"
tu cliques sur le # en haut, et tu colles ton code au milieu...
 

sabzzz

XLDnaute Junior
Re : Copie de données sur un autre fichier

bonjour ironangel,

c'est comme ça que tu l'as écrit ?

Sub Copie()
Dim Derlig As Long
Select Case MsgBox("Voulez-vous ouvrir le classeur ''Etiquette de teinte.xls'' ?", vbYesNo)
Case vbYes
With Workbooks("Etiquette de teinte.xls").Sheets("Feuil1")
Derlig = .Range("A65000").End(xlUp).Row
End With
Workbooks("Etiquette de teinte.xls").Sheets("Feuil1").Range("AA" & Derlig).Value _
= Workbooks("Déclaration BAT.xls").Sheets("Feuil1").Range("A4").Value
Case vbNo
Exit Sub
End Select
End Sub

a+
 

ironangel

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

Je sais d'ou vient le probleme,
c'est que je mets des valeurs fixes du genre "Range("AA2").Value" alors que je veux des valeurs variables, à savoir que la derniere ligne du fichier "déclaration de BAT" soit celle prise en compte dans le fichier "etiquette de teinte" je ne sais pas si je suis assez clair, n'hésitez à me demander si probleme il y a?

Amicalement
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 701
Membres
103 376
dernier inscrit
marionromeo