Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Re : modification macro

J'ai fais mes modifications donc fichier general je mets la date le nom du fichier source et destination.
j'arrive bien à ouvrir les deux fichiers, mais la macro que l'indice n'appartient pas à la selection.
Code:
Sub Macro6bis()
Dim Source As Range, Desti As Range
Dim i As String
Dim x As Range
' Macro enregistrée le 27/01/2010 par Moi


i = Range("f19").Value
d = Range("i19").Value
Set Destination = Application.Workbooks.Open(d, , False)
Set classeurSource = Application.Workbooks.Open(i, , True)


[COLOR="Red"]With Workbooks(i).Sheets("feuil1")[/COLOR]
    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(d).Sheets("feuil1").Range("C65536").End(xlUp)(2).PasteSpecial xlPasteAll, xlNone, , True
End If
classeurSource.Close False
Destination.Save
Destination.Close True

End Sub
 
Re : modification macro

Ta modif. fonction bien et j'ai pu corrigé pour la destination.
Tous ce passe bien, sauf les valeurs ne sont pas saisies.
Code:
Sub Macro6bis()
Dim Source As Range, Desti As Range
Dim i As String
Dim x As Range
' Macro enregistrée le 27/01/2010 par Moi


i = Range("f19").Value
d = Range("i19").Value
Set Destination = Application.Workbooks.Open(d, , False)
Set classeurSource = Application.Workbooks.Open(i, , True)

With classeurSource.Sheets("feuil1")

    Set x = .Range("E4:AI4").Find(Range("B5").Value, , xlValues, xlWhole, , , False)
End With
If Not x Is Nothing Then
    x.Resize(254).Copy
    Destination.Sheets("feuil1").Range("a65536").End(xlUp)(2).PasteSpecial xlPasteAll, xlNone, , True
End If
classeurSource.Close False
Destination.Save
Destination.Close False

End Sub
 
Re : modification macro

je ne vois pas comment, je peux indiquer que b5 et sur le premier classeur bilan general.
j'ai fais ceci mais cela ne va pas.
Code:
Sub Macro6bis()
Dim Source As Range, Desti As Range
Dim i As String
Dim x As Range
Dim y As String
' Macro enregistrée le 27/01/2010 par Moi

y = Range("b5").Value '
i = Range("f19").Value
d = Range("i19").Value

Set h = [COLOR="Red"]ActiveWorkbook(y)[/COLOR]
Set Destination = Application.Workbooks.Open(d, , False)
Set classeurSource = Application.Workbooks.Open(i, , True)


With classeurSource.Sheets("feuil1")

    Set x = .Range("E2:AI2").Find(Range(h).Value, , xlValues, xlWhole, , , False)
End With
 
Re : modification macro

Re,

modifie comme suit, si "y" est valorisé par la bonne valeur

Code:
With classeurSource.Sheets("feuil1")

    Set x = .Range("E2:AI2").Find(y, , xlValues, xlWhole, , , False)
End With

@+

Edition : remplacé h par y qui est censé contenir la valeur de B5
 
Re : modification macro

Je suis désolé mais cela ne fonctionne pas.
j'ai modifié pour le nom du classeur.
cela bloc sur find
Code:
Dim Source As Range, Desti As Range
Dim i As String
Dim x As Range
Dim y As String
' Macro enregistrée le 27/01/2010 par Moi

y = Range("b5").Value
i = Range("f19").Value
d = Range("i19").Value

Set h = [COLOR="Red"]Workbooks("bilan general.xls")[/COLOR][COLOR="Lime"]j'ai mis cela[/COLOR]
Set Destination = Application.Workbooks.Open(d, , False)
Set classeurSource = Application.Workbooks.Open(i, , True)


With classeurSource.Sheets("feuil1")
Set x = .Range("E2:AI2").[COLOR="Magenta"]Find(h, , [/COLOR]xlValues, xlWhole, , , False)
'Set x = .Range("E2:AI2").Find(Range(h).Value, , xlValues, xlWhole, , , False)
 
Re : modification macro

Re

A vérifier lorsque tu exécute pas à pas (touche f8) le code, que ta variable soit bien initialisée, et ce dans la fenêtre variables locales de l'éditeur vba... Sinon autre solution, préciser le classeur et la feuille dans le "find" :

Code:
Set x = .Range("E2:AI2").Find(Workbooks("nomclasseur.xls").Sheets("nomfeuille").Range("B5").Value _
    , , xlValues, xlWhole, , , False)

@+
 
Re : modification macro

Je reviens à la charge, mais, je voudrais savoir si je peux selectionner des cellules non contigues:
Code:
If Not x Is Nothing Then
   [COLOR="Red"] x.Resize(240).Copy[/COLOR]
    Workbooks(d).Sheets("feuil1").Range("C65536").End(xlUp)(2).PasteSpecial xlPaste

exemple: colonne c ligne 2 et lignes 241 à 500.
Je te remercie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
178
Réponses
9
Affichages
508
Réponses
8
Affichages
782
Retour