Bonjour à tous
je n'arrive pas à copier mes données dans la colonne de la feuille Cible
dont l'entête est semblable à la cellule D1 de la feuille Source.
Sub CopierSaisies()
Dim c As Variant
For Each c In Worksheets("Cible").Range("d1:o1") 'les entêtes à comparer
If c = Worksheets("Source").Range("D1") Then 'l'élément à comparer
With Worksheets("Source")
.Range("D10:D26").Copy
' Worksheets("Cible").Range("H2").PasteSpecial xlValues '''' cela
fonctionne
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues '''' ici
j'ai une erreur 13
' la copie doit se faire dans la colonne de la feuille Cible dont
l'entête = D1 de la feuille Source
End With
End If
Next
End Sub
Merci pour l'aide
Cordialement
J@@
Bonjour à tous
je n'arrive pas à copier mes données dans la colonne de la feuille Cible
dont l'entête est semblable à la cellule D1 de la feuille Source.
Sub CopierSaisies()
Dim c As Variant
For Each c In Worksheets("Cible").Range("d1:o1") 'les entêtes à comparer
If c = Worksheets("Source").Range("D1") Then 'l'élément à comparer
With Worksheets("Source")
.Range("D10:D26").Copy
' Worksheets("Cible").Range("H2").PasteSpecial xlValues '''' cela
fonctionne
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues '''' ici
j'ai une erreur 13
' la copie doit se faire dans la colonne de la feuille Cible dont
l'entête = D1 de la feuille Source
End With
End If
Next
End Sub
Merci pour l'aide
Cordialement
J@@
Bonjour à tous
je n'arrive pas à copier mes données dans la colonne de la feuille Cible
dont l'entête est semblable à la cellule D1 de la feuille Source.
Sub CopierSaisies()
Dim c As Variant
For Each c In Worksheets("Cible").Range("d1:o1") 'les entêtes à comparer
If c = Worksheets("Source").Range("D1") Then 'l'élément à comparer
With Worksheets("Source")
.Range("D10:D26").Copy
' Worksheets("Cible").Range("H2").PasteSpecial xlValues '''' cela
fonctionne
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues '''' ici
j'ai une erreur 13
' la copie doit se faire dans la colonne de la feuille Cible dont
l'entête = D1 de la feuille Source
End With
End If
Next
End Sub
Merci pour l'aide
Cordialement
J@@
Bonjour,
La variable C devrait être de type Range
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues
C devrait une cellule et non une colonne.
En définissant C as Range, tu pourrais utiliser :
Worksheets("Cible").Cells(2, c.row).PasteSpecial xlValues
Je te suggère une autre approche pour copier la valeur d'une plage de cellules vers une autre
destination qui est simple et rapide.
Nom des feuilles et des plages de cellules à adapter.
'--------------------------------
Sub test()
Dim T As Variant
With Worksheets("Feuil1")
'.Tu places les données du tableau dans une
'variable de type tableau
T = .Range("A1:A10").Value
End With
'Maintenant, tu peux copier le tableau T où tu veux
'comme ceci, aussi souvent que tu veux.
With Worksheets("Feuil2")
'Copie vers la plage B1:B10
.Range("B1").Resize(UBound(T, 1), UBound(T, 2)) = T
'Copie vers la plage G10:G19
.Range("G10").Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End Sub
'--------------------------------
MichD
Bonjour,
La variable C devrait être de type Range
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues
C devrait une cellule et non une colonne.
En définissant C as Range, tu pourrais utiliser :
Worksheets("Cible").Cells(2, c.row).PasteSpecial xlValues
Je te suggère une autre approche pour copier la valeur d'une plage de cellules vers une autre
destination qui est simple et rapide.
Nom des feuilles et des plages de cellules à adapter.
'--------------------------------
Sub test()
Dim T As Variant
With Worksheets("Feuil1")
'.Tu places les données du tableau dans une
'variable de type tableau
T = .Range("A1:A10").Value
End With
'Maintenant, tu peux copier le tableau T où tu veux
'comme ceci, aussi souvent que tu veux.
With Worksheets("Feuil2")
'Copie vers la plage B1:B10
.Range("B1").Resize(UBound(T, 1), UBound(T, 2)) = T
'Copie vers la plage G10:G19
.Range("G10").Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End Sub
'--------------------------------
MichD
Bonjour,
La variable C devrait être de type Range
Worksheets("Cible").Cells(2, c).PasteSpecial xlValues
C devrait une cellule et non une colonne.
En définissant C as Range, tu pourrais utiliser :
Worksheets("Cible").Cells(2, c.row).PasteSpecial xlValues
Je te suggère une autre approche pour copier la valeur d'une plage de cellules vers une autre
destination qui est simple et rapide.
Nom des feuilles et des plages de cellules à adapter.
'--------------------------------
Sub test()
Dim T As Variant
With Worksheets("Feuil1")
'.Tu places les données du tableau dans une
'variable de type tableau
T = .Range("A1:A10").Value
End With
'Maintenant, tu peux copier le tableau T où tu veux
'comme ceci, aussi souvent que tu veux.
With Worksheets("Feuil2")
'Copie vers la plage B1:B10
.Range("B1").Resize(UBound(T, 1), UBound(T, 2)) = T
'Copie vers la plage G10:G19
.Range("G10").Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End Sub
'--------------------------------
MichD
Tu as changé la donne du problème:
Un exemple de code, tu dois modifier le nom des feuilles et
des plages de cellules s'il y a lieu.
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), Range("E10:E26"), Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la
feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Offset(Are.Rows.Count)
Next
End Sub
'---------------------------------------------------
MichD
Tu as changé la donne du problème:
Un exemple de code, tu dois modifier le nom des feuilles et
des plages de cellules s'il y a lieu.
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), Range("E10:E26"), Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la
feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Offset(Are.Rows.Count)
Next
End Sub
'---------------------------------------------------
MichD
Tu as changé la donne du problème:
Un exemple de code, tu dois modifier le nom des feuilles et
des plages de cellules s'il y a lieu.
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), Range("E10:E26"), Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la
feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Offset(Are.Rows.Count)
Next
End Sub
'---------------------------------------------------
MichD
Tu as changé la donne du problème:
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), .Range("E10:E26"), .Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Resize(Are.Rows.Count) = Are.Value 'modifié pour copie valeur
Next
End Sub
'---------------------------------------------------
MichD
Tu as changé la donne du problème:
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), .Range("E10:E26"), .Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Resize(Are.Rows.Count) = Are.Value 'modifié pour copie valeur
Next
End Sub
'---------------------------------------------------
MichD
Tu as changé la donne du problème:
'---------------------------------------------------
Sub test()
Dim Are As Range, Rg As Range, Mois As String
Dim Col As Long, Dest As Range
With Worksheets("Feuil1")
'Variable de type range qui regroupe les 3 plages de cellules.
Set Rg = Union(.Range("D10:D26"), .Range("E10:E26"), .Range("F10:F22"))
'identifier le mois de D1
'je suppose qu'en D1, tu as un chiffre représentant le mois
'Mois contient le texte complet représentant le mois
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
End With
'Dans la feuille de destination
'identifier la colonne où se retrouve le "mois" dans la ligne 1 de la feuille
With Worksheets("Feuil2")
'Si le mois recherché n'est pas sur la ligne 1,
'cette ligne de code provoque une erreur.
'le texte du moins c'est le nom complet du mois
Col = Application.Match(Mois, .Rows(1).Cells, 1)
'Variable de type range désignant la cellule où débute la copie
Set Dest = .Cells(2, Col)
End With
'La copie des données dans la même colonne
For Each Are In Rg.Columns
Are.Copy Dest 'Dest= la cellule de destination
'Modifier la position de "Dest" pour la suite de la copie
Set Dest = Dest.Resize(Are.Rows.Count) = Are.Value 'modifié pour copie valeur
Next
End Sub
'---------------------------------------------------
MichD
Bonjour Denis
Merci pour ta réponse.
1 - J'ai une erreur 13 "incompatibilité de type" sur la ligne
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
Les "Mois" sont seulement du texte, au format standard, ils n'ont pas de
fonction de calcul.
Bonjour Denis
Merci pour ta réponse.
1 - J'ai une erreur 13 "incompatibilité de type" sur la ligne
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
Les "Mois" sont seulement du texte, au format standard, ils n'ont pas de
fonction de calcul.
Bonjour Denis
Merci pour ta réponse.
1 - J'ai une erreur 13 "incompatibilité de type" sur la ligne
Mois = Format(DateSerial(2018, .Range("D1"), 1), "MMMM")
Les "Mois" sont seulement du texte, au format standard, ils n'ont pas de
fonction de calcul.
Ah, au moins un frère.
Et frère Jacques, si je ne m'abuse. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jarobasearobase" a écrit dans le message de groupe de discussion : pvj66c$17p6$
Bonjour Denis
Merci pour ta réponse.
//PS: je suis sous Excel 2003 ... désolé d'avoir oublier de le préciser//
Merci pour ton aide
Cordialement
J@@
Ah, au moins un frère.
Et frère Jacques, si je ne m'abuse. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jarobasearobase" a écrit dans le message de groupe de discussion : pvj66c$17p6$1@gioia.aioe.org...
Bonjour Denis
Merci pour ta réponse.
//PS: je suis sous Excel 2003 ... désolé d'avoir oublier de le préciser//
Merci pour ton aide
Cordialement
J@@
Ah, au moins un frère.
Et frère Jacques, si je ne m'abuse. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jarobasearobase" a écrit dans le message de groupe de discussion : pvj66c$17p6$
Bonjour Denis
Merci pour ta réponse.
//PS: je suis sous Excel 2003 ... désolé d'avoir oublier de le préciser//
Merci pour ton aide
Cordialement
J@@