Macro Excel : copie de valeurs

johnmarket

XLDnaute Nouveau
Bonjour à tous,
Je voulais tout d'abord remercier chacun des contributeur de ce forum parceque le travail effectué est sublime.

Je voulais vous soumettre ma question.
Tout d'abord voici la macro

Public Sub CopieValeurs()
' // Copie des lignes desirées dans les feuilles de calcul dédiées

Dim PlageUtile As Range
Dim ligne As Range
Dim Origine As Worksheet
Dim Destination As Worksheet
Dim LigneDestination As Integer


Set Origine = Worksheets("DATA")
Set Destination = Worksheets("DMP-")

'Effacer le contenu de la feuille de destination
Destination.Cells.Clear
'Copier la 1ère ligne : l'entête
Destination.Rows("1").Value = Origine.Rows("1").Value

Set PlageUtile = Range(Origine.Cells(1, 1), Origine.Cells(1, 1).SpecialCells(xlLastCell))


MsgBox "Attention, nous allons travailler sur la plage " & PlageUtile.Address

' commencer à partir de la ligne 2 puisqu'en 1ère linge on a mis l'entête
LigneDestination = 2

For Each ligne In PlageUtile.Rows
If ligne.Cells(1, 33).Value = "X" Then
ligne.Copy Destination.Cells(LigneDestination, 1)
LigneDestination = LigneDestination + 1
End If
Next
End Sub


Ce macro fonctionne très bien et j'ai le message
Attention, nous allons travailler sur la plage $A$1:$AM$295 --> Donc 39 colonnes.
Mais je souhaite l'améliorer
je teste en effet que la colonne 33 possède X
Mais je souhaite copier dans la feuille "DMP-" que les 20 premières colonnes et non les 39.
Je n'arrive pas !
avez-vous une idée ?
 

pou pouille

XLDnaute Nouveau
Re : Macro Excel : copie de valeurs

bonjour, si il n'y a que la colonne de destination à modifier (et réduire uniquement jusque la colonne 20) dans ce cas je pense qu'il ne faut changer que cette ligne:
Code:
Set PlageUtile = Range(Origine.Cells(1, 1), Origine.cells(1, 20).End(xlUp))
normalement cela devrai étendre le tableau jusque la dernière ligne de la colonne 20.
à vérifier.
 

ROGER2327

XLDnaute Barbatruc
Re : Macro Excel : copie de valeurs

Bonjour à tous.
Je suis étonné que la procédure fonctionne comme elle est écrite dans le premier message.
Quoiqu'il en soit, essayez de remplacer
Code:
[COLOR="DarkSlateGray"]ligne.Copy Destination.Cells(LigneDestination, 1)[/COLOR]
par
Code:
[COLOR="DarkSlateGray"][B]ligne[COLOR="Sienna"].Resize(1, 20)[/COLOR].Copy Destination[COLOR="Sienna"]:=[/COLOR]Cells(LigneDestination, 1)[/B][/COLOR]
ROGER2327
#2463
 

johnmarket

XLDnaute Nouveau
Re : Macro Excel : copie de valeurs

Bonjour ROGER2327,
Super ça fonctionne ...
par contre pourrais-tu me dire comment modifier la ligne quivante
Destination.Rows("1").Value = Origine.Rows("1").Value
pour que la copie l'entête prenne également uniquement les 20 premières colonnes : donc à savoir A1:A20

Sinon merci bcp:)
 

Discussions similaires

Réponses
1
Affichages
369
Réponses
7
Affichages
626

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson