modification macro

guigui76

XLDnaute Occasionnel
Bonjour, je souhaite modifier cette macro
HTML:
http://www.excel-downloads.com/forum/91261-vba-excel-copier-une-colonne-en-fonction-dune-cellule.html
pourque je puisse faire une selection d'une plage de cellule au lieu de la colonne entiere.

je fais une translation par la suite.

Code:
sub cinq()
Dim celle As Range

For Each celle In Range("e4:ai4")
If celle.Value = 5 And celle.Value <> "" Then
[COLOR="Red"]celle.EntireColumn.Copy [/COLOR]'ici tu écris la cellule de destination
celle.select
End If
Next
End Sub

Je vous remercie
 

guigui76

XLDnaute Occasionnel
Re : modification macro

je vous mets le code modifierque je vais utiliser
Sub cinq()
' elle fonctionne copie de la colonne
Dim celle As Range
Dim d As String

d = Range("b5").Value 'b5 correspond a l'endroit ou je donne la date à rechercher
For Each celle In Range("e4:ai4")
If celle.Value = d And celle.Value <> "" Then
celle.Copy 'ici tu écris la cellule de destination
Range("c65536").End(xlUp)(2).PasteSpecial xlPasteAll, xlNone, , True
celle.Select
End If
Next
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : modification macro

Re,

regarde le code ci-dessous si il peut t'aider :

Code:
Sub test()
Dim x As Range
Set x = Range("E4:AI4").Find(Range("B5").Value, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    x.Copy Range("C65536").End(xlUp)(2).Resize(240)
End If
End Sub

attention ce code s'applique au classeur actif et feuille active, pour intervenir sur un autre classeur / autre feuille, préciser le nom des objets...

Code:
Sub test()
Dim x As Range
[COLOR="red"]With Workbooks("classeurrecherche.xls").Sheets("feuillerecherche")[/COLOR]
    Set x = [COLOR="Red"][B].[/B][/COLOR]Range("E4:AI4").Find([COLOR="red"][B].[/B][/COLOR]Range("B5").Value, , xlValues, xlWhole, , , False)
[COLOR="red"]End With[/COLOR]
If Not x Is Nothing Then
    x.Copy Workbooks("classeurdestination.xls").Sheets("feuilledestination").Range("C65536").End(xlUp)(2).Resize(240)
End If
End Sub

@+
 

Roland_M

XLDnaute Barbatruc
Re : modification macro

bonjour

s'il s'agit de date il faudrait peut être définir tes variables !?
et respecter les formats idem côté feuille !?

Dim d AS Date
d = Range("b5") 'b5 correspond a l'endroit ou je donne la date à rechercher
For Each celle In Range("e4:ai4")
If celle = d And celle.Value > "" Then


EDIT: salut Pierrot
 
Dernière édition:

guigui76

XLDnaute Occasionnel
Re : modification macro

Vous etes vraiment rapide.
Voila j'ai trois fichier:
_ bilan generale ou je vais appeler la macro et ou je vais mettre la date en b5
_ brut_01 le numero change chaque mois.ce sont les données brut
_bilan news 1 qui ne changera jamais de nom. ce sont les données cumulés de chaque mois.

je fais la copie chaque jour de la colonne de la veille vers le bilan news 01
 

Pièces jointes

  • bilan general.xls
    27 KB · Affichages: 64
  • bilan news 1.xls
    27.5 KB · Affichages: 71
  • brut_01.xls
    33.5 KB · Affichages: 63

guigui76

XLDnaute Occasionnel
Re : modification macro

J'ai encore un souci la copy des valeurs ne fonctionne pas.
le format change bien.
je te joints les deux fichiers, si tu as l'occasion dit regarder.
 

Pièces jointes

  • destination.xls
    39 KB · Affichages: 79
  • source.xls
    18.5 KB · Affichages: 67
  • destination.xls
    39 KB · Affichages: 68
  • source.xls
    18.5 KB · Affichages: 67
  • destination.xls
    39 KB · Affichages: 75
  • source.xls
    18.5 KB · Affichages: 69

Pierrot93

XLDnaute Barbatruc
Re : modification macro

bonjour guigui,

essaye ainsi, j'ai supprimé le point au niveau de la valeur recherchée(B5), puisque en fait cette cellule se trouve sur le classeur destination et que celui-ci est actif au moment de l'exécution :

Code:
Dim x As Range
With Workbooks("source.xls").Sheets("feuil1")
    Set x = .Range("E4:AI4").Find(Range("B5").Value, , xlValues, xlWhole, , , False)
End With
If Not x Is Nothing Then
    x.Resize(240).Copy Workbooks("destination.xls").Sheets("feuil1").Range("C65536").End(xlUp)(2)
End If

bonne journée
@+
 

guigui76

XLDnaute Occasionnel
Re : modification macro

Voici le code avec la translation:
Code:
Sub moi_1()

Dim x As Range
With Workbooks("source.xls").Sheets("feuil1")
    Set x = .Range("E4:AI4").Find(Range("B5").Value, , xlValues, xlWhole, , , False)
End With
If Not x Is Nothing Then
    x.Resize(240).Copy
    Workbooks("destination.xls").Sheets("feuil1").Range("C65536").End(xlUp)(2).PasteSpecial xlPasteAll, xlNone, , True
End If
End Sub

je mettrai la suite dans la matiné.
un grand merci à toutes les personnes qui m'aident.
 

Discussions similaires

Réponses
7
Affichages
250

Statistiques des forums

Discussions
312 755
Messages
2 091 724
Membres
105 058
dernier inscrit
axcelle