J'esp=E8re que vous pourrez m'aider!!
J'avais lanc=E9 un appel =E0 l'aide pour faire cet exercice =E0 partir d'un
fichier ferm=E9 on m'a conseill=E9 de le faire =E0 partir d'un fichier
ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des donn=E9es dans un fichier ferm=E9 et les coller dans
un
nouveau. Ces donn=E9es sont sur x colonnes et y lignes. Je veux les
coller dans le nouveau fichier sur une seule colonne (Chaque colonne
de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est d=E9fini par
une cellule genre "A5". PAr contre s'il est d=E9fini =E0 l'aide de Cells.
CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur
aide..
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nbredin
On 26 fév, 09:25, wrote:
Bonjour le forum,
J'espère que vous pourrez m'aider!! J'avais lancé un appel à l'aide pour faire cet exercice à partir d' un fichier fermé on m'a conseillé de le faire à partir d'un fichier ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans un nouveau. Ces données sont sur x colonnes et y lignes. Je veux les coller dans le nouveau fichier sur une seule colonne (Chaque colonne de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells. CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur aide..
Oui ben c'était vendredi pm que je me suis pris la tête.. et c'était vendredi.. En effet il suffit de mettre Cells(a,b) Select et ca fonctionne..
Voila il n'y a plus de problème!!
Merci
On 26 fév, 09:25, nbre...@hotmail.com wrote:
Bonjour le forum,
J'espère que vous pourrez m'aider!!
J'avais lancé un appel à l'aide pour faire cet exercice à partir d' un
fichier fermé on m'a conseillé de le faire à partir d'un fichier
ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans
un
nouveau. Ces données sont sur x colonnes et y lignes. Je veux les
coller dans le nouveau fichier sur une seule colonne (Chaque colonne
de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par
une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells.
CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur
aide..
J'espère que vous pourrez m'aider!! J'avais lancé un appel à l'aide pour faire cet exercice à partir d' un fichier fermé on m'a conseillé de le faire à partir d'un fichier ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans un nouveau. Ces données sont sur x colonnes et y lignes. Je veux les coller dans le nouveau fichier sur une seule colonne (Chaque colonne de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells. CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur aide..
Oui ben c'était vendredi pm que je me suis pris la tête.. et c'était vendredi.. En effet il suffit de mettre Cells(a,b) Select et ca fonctionne..
Voila il n'y a plus de problème!!
Merci
FxM
Bonjour Nathalie,
Plusieurs points :
Range("A5") et cells(5,1) désignent tout deux la même chose à savoir la cellule A5.
Par défaut, Excel considère le suffixe.value qui désigne la valeur de la cellule et non son adresse.
Range("A5:A8") peut aussi s'écrire range("A5").resize(4,1)
Il n'est généralement pas nécessaire de .select pour copier
Si j'ai bien compris le principe, tu cherches à copier les valeurs entre deux classeurs.
Sub Macro1() Workbooks.Open ("classeur1.xls")
For i = 1 To 6 Windows("Classeur1.xls").Activate Cells(5, i).Resize(4, 1).Copy
Windows("Classeur2.xls").Activate Cells(1, (i * 5) + 1).Select
'la ligne suivante sur une seule ligne ! Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Next i End Sub
En regard de la question originale qui était s'il me semble de copier des données depuis un classeur fermé ...
Si le but est de passer de ori (classeur origine fermé) à des (classeur destination ouvert) selon les cellules suivantes : Ori = $E$1 des = $F$1 ($E$2 -> $F$2 jusqu'à $E$6 -> $F$6) Ori = $F$1 des = $K$1 ($F$2 -> $K$2 jusqu'à $F$6 -> $K$6) Ori = $G$1 des = $P$1 ($G$2 -> $P$2 jusqu'à $G$6 -> $P$6) Ori = $H$1 des = $U$1 ($H$2 -> $U$2 jusqu'à $H$6 -> $U$6)
Ce qui suit devrait fonctionner : Alt-F11 pour l'éditeur VBE, insertion - module, copier ce qui suit ' --- d'ici Sub test() 'destination = classeur contenant la macro (ouvert) 'dans la feuille active !
For lig_ori = 1 To 6 For col_ori = 5 To 8 With ThisWorkbook.ActiveSheet
'ce qui suit sur une seule ligne ! .Cells(lig_ori, ((col_ori - 4) * 5) + 1).Value = GetValue(ori_chemin, ori_fichier, ori_feuille, Cells(lig_ori, col_ori).Address)
End With Next col_ori Next lig_ori End Sub
'ce qui suit sur une seule ligne ! Public Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref) As Variant
Dim Arg As String If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
'ce qui suit sur une seule ligne ! Arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
GetValue = Application.ExecuteExcel4Macro(Arg) DoEvents End Function ' --- jusque là
@+ FxM
Bonjour le forum,
J'espère que vous pourrez m'aider!! J'avais lancé un appel à l'aide pour faire cet exercice à partir d'un fichier fermé on m'a conseillé de le faire à partir d'un fichier ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans un nouveau. Ces données sont sur x colonnes et y lignes. Je veux les coller dans le nouveau fichier sur une seule colonne (Chaque colonne de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells. CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur aide..
Range("A5") et cells(5,1) désignent tout deux la même chose à
savoir la cellule A5.
Par défaut, Excel considère le suffixe.value qui désigne la valeur
de la cellule et non son adresse.
Range("A5:A8") peut aussi s'écrire range("A5").resize(4,1)
Il n'est généralement pas nécessaire de .select pour copier
Si j'ai bien compris le principe, tu cherches à copier les valeurs
entre deux classeurs.
Sub Macro1()
Workbooks.Open ("classeur1.xls")
For i = 1 To 6
Windows("Classeur1.xls").Activate
Cells(5, i).Resize(4, 1).Copy
Windows("Classeur2.xls").Activate
Cells(1, (i * 5) + 1).Select
'la ligne suivante sur une seule ligne !
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse
Next i
End Sub
En regard de la question originale qui était s'il me semble de
copier des données depuis un classeur fermé ...
Si le but est de passer de ori (classeur origine fermé) à des
(classeur destination ouvert) selon les cellules suivantes :
Ori = $E$1 des = $F$1 ($E$2 -> $F$2 jusqu'à $E$6 -> $F$6)
Ori = $F$1 des = $K$1 ($F$2 -> $K$2 jusqu'à $F$6 -> $K$6)
Ori = $G$1 des = $P$1 ($G$2 -> $P$2 jusqu'à $G$6 -> $P$6)
Ori = $H$1 des = $U$1 ($H$2 -> $U$2 jusqu'à $H$6 -> $U$6)
Ce qui suit devrait fonctionner :
Alt-F11 pour l'éditeur VBE, insertion - module, copier ce qui suit
' --- d'ici
Sub test()
'destination = classeur contenant la macro (ouvert)
'dans la feuille active !
For lig_ori = 1 To 6
For col_ori = 5 To 8
With ThisWorkbook.ActiveSheet
'ce qui suit sur une seule ligne !
.Cells(lig_ori, ((col_ori - 4) * 5) + 1).Value =
GetValue(ori_chemin, ori_fichier, ori_feuille, Cells(lig_ori,
col_ori).Address)
End With
Next col_ori
Next lig_ori
End Sub
'ce qui suit sur une seule ligne !
Public Function GetValue(ByVal path, ByVal file, ByVal sheet,
ByVal ref) As Variant
Dim Arg As String
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
'ce qui suit sur une seule ligne !
Arg = "'" & path & "[" & file & "]" & sheet & "'!" &
Range(ref).Range("A1").Address(, , xlR1C1)
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
' --- jusque là
@+
FxM
Bonjour le forum,
J'espère que vous pourrez m'aider!!
J'avais lancé un appel à l'aide pour faire cet exercice à partir d'un
fichier fermé on m'a conseillé de le faire à partir d'un fichier
ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans
un
nouveau. Ces données sont sur x colonnes et y lignes. Je veux les
coller dans le nouveau fichier sur une seule colonne (Chaque colonne
de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par
une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells.
CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur
aide..
Range("A5") et cells(5,1) désignent tout deux la même chose à savoir la cellule A5.
Par défaut, Excel considère le suffixe.value qui désigne la valeur de la cellule et non son adresse.
Range("A5:A8") peut aussi s'écrire range("A5").resize(4,1)
Il n'est généralement pas nécessaire de .select pour copier
Si j'ai bien compris le principe, tu cherches à copier les valeurs entre deux classeurs.
Sub Macro1() Workbooks.Open ("classeur1.xls")
For i = 1 To 6 Windows("Classeur1.xls").Activate Cells(5, i).Resize(4, 1).Copy
Windows("Classeur2.xls").Activate Cells(1, (i * 5) + 1).Select
'la ligne suivante sur une seule ligne ! Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Next i End Sub
En regard de la question originale qui était s'il me semble de copier des données depuis un classeur fermé ...
Si le but est de passer de ori (classeur origine fermé) à des (classeur destination ouvert) selon les cellules suivantes : Ori = $E$1 des = $F$1 ($E$2 -> $F$2 jusqu'à $E$6 -> $F$6) Ori = $F$1 des = $K$1 ($F$2 -> $K$2 jusqu'à $F$6 -> $K$6) Ori = $G$1 des = $P$1 ($G$2 -> $P$2 jusqu'à $G$6 -> $P$6) Ori = $H$1 des = $U$1 ($H$2 -> $U$2 jusqu'à $H$6 -> $U$6)
Ce qui suit devrait fonctionner : Alt-F11 pour l'éditeur VBE, insertion - module, copier ce qui suit ' --- d'ici Sub test() 'destination = classeur contenant la macro (ouvert) 'dans la feuille active !
For lig_ori = 1 To 6 For col_ori = 5 To 8 With ThisWorkbook.ActiveSheet
'ce qui suit sur une seule ligne ! .Cells(lig_ori, ((col_ori - 4) * 5) + 1).Value = GetValue(ori_chemin, ori_fichier, ori_feuille, Cells(lig_ori, col_ori).Address)
End With Next col_ori Next lig_ori End Sub
'ce qui suit sur une seule ligne ! Public Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref) As Variant
Dim Arg As String If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
'ce qui suit sur une seule ligne ! Arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
GetValue = Application.ExecuteExcel4Macro(Arg) DoEvents End Function ' --- jusque là
@+ FxM
Bonjour le forum,
J'espère que vous pourrez m'aider!! J'avais lancé un appel à l'aide pour faire cet exercice à partir d'un fichier fermé on m'a conseillé de le faire à partir d'un fichier ouvert c'est ce que j'ai fait mais j'ai encore un pb..
Je dois copier des données dans un fichier fermé et les coller dans un nouveau. Ces données sont sur x colonnes et y lignes. Je veux les coller dans le nouveau fichier sur une seule colonne (Chaque colonne de l'ancien fichier l'une en dessous de l'autre).
Le code cidessou fonctionne bien si le second "range " est défini par une cellule genre "A5". PAr contre s'il est défini à l'aide de Cells. CA ne fonctionne pas.. Pourquoi? ou est mon erreur?
Merci d'avance a tous ceux qui me liront, et m'apporteront leur aide..