Xls 2010: Copie/paste VBA selon critère

4 réponses
Avatar
forum
Bonjour le forum,

Je débute en VBA. Je cherche à importer des lignes de la feuille Entity dans la feuille Draft en fonction de la valeur que contient les cellules de la colonne F de la feuille Entity.
Je précise : si dans la colonne F de la feuille draft la valeur de la cellule est = "base" alors copy paste sur la feuille ("draft")

Le code ci-dessous ne copie que la derniere cellule comprenant "base" et je ne comprends pas pourquoi. Pensez-vous que je devrais plutot passer par des filtres VBA ? Merci de votre aide.

Code :Sélectionner tout - Visualiser dans une fenêtre à part1234567891011
Dim zone As Range
Dim cellule As Range
Set zone = Worksheets("entity").Range("F18:F134")
For Each cellule In zone
If cellule = "base" Then
cellule.EntireRow.Copy
End If
Next
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
End Sub

4 réponses

Avatar
DanielCo
Bonjour,
Une façon de faire; au début de la macro, mets :
Dim Ligne
Ligne = 17
et à la place de :
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
(ce qui fait que tu écris toujours sur la ligne 18), mats :
Ligne = Ligne + 1
Worksheets("Draft").Range("A" & Ligne).PasteSpecial (xlPasteAll)
Cordialement.
Daniel


Bonjour le forum,

Je débute en VBA. Je cherche à importer des lignes de la feuille Entity dans
la feuille Draft en fonction de la valeur que contient les cellules de la
colonne F de la feuille Entity.
Je précise : si dans la colonne F de la feuille draft la valeur de la cellule
est = "base" alors copy paste sur la feuille ("draft")

Le code ci-dessous ne copie que la derniere cellule comprenant "base" et je
ne comprends pas pourquoi. Pensez-vous que je devrais plutot passer par des
filtres VBA ? Merci de votre aide.

Code :Sélectionner tout - Visualiser dans une fenêtre à part1234567891011
Dim zone As Range
Dim cellule As Range
Set zone = Worksheets("entity").Range("F18:F134")
For Each cellule In zone
If cellule = "base" Then
cellule.EntireRow.Copy
End If
Next
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
End Sub
Avatar
Jacquouille
Bonsoir
Un simple filtre en prenant " X " comme critère te donnera la liste de
toutes les personnes pratiquant le sport défini dans la colonne choisie;



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"forum" a écrit dans le message de groupe de discussion :


Bonjour le forum,

Je débute en VBA. Je cherche à importer des lignes de la feuille Entity dans
la
feuille Draft en fonction de la valeur que contient les cellules de la
colonne F
de la feuille Entity.
Je précise : si dans la colonne F de la feuille draft la valeur de la
cellule
est = "base" alors copy paste sur la feuille ("draft")

Le code ci-dessous ne copie que la derniere cellule comprenant "base" et je
ne
comprends pas pourquoi. Pensez-vous que je devrais plutot passer par des
filtres
VBA ? Merci de votre aide.

Code :Sélectionner tout - Visualiser dans une fenêtre à part1234567891011
Dim zone As Range
Dim cellule As Range
Set zone = Worksheets("entity").Range("F18:F134")
For Each cellule In zone
If cellule = "base" Then
cellule.EntireRow.Copy
End If
Next
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
End Sub
Avatar
Jacquouille
Désolé, je me suis gourré de msg.... -(



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
51229de1$0$3113$

Bonsoir
Un simple filtre en prenant " X " comme critère te donnera la liste de
toutes les personnes pratiquant le sport défini dans la colonne choisie;



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"forum" a écrit dans le message de groupe de discussion :


Bonjour le forum,

Je débute en VBA. Je cherche à importer des lignes de la feuille Entity dans
la
feuille Draft en fonction de la valeur que contient les cellules de la
colonne F
de la feuille Entity.
Je précise : si dans la colonne F de la feuille draft la valeur de la
cellule
est = "base" alors copy paste sur la feuille ("draft")

Le code ci-dessous ne copie que la derniere cellule comprenant "base" et je
ne
comprends pas pourquoi. Pensez-vous que je devrais plutot passer par des
filtres
VBA ? Merci de votre aide.

Code :Sélectionner tout - Visualiser dans une fenêtre à part1234567891011
Dim zone As Range
Dim cellule As Range
Set zone = Worksheets("entity").Range("F18:F134")
For Each cellule In zone
If cellule = "base" Then
cellule.EntireRow.Copy
End If
Next
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
End Sub
Avatar
zicor
Le lundi 18 Février 2013 à 16:32 par DanielCo :
Bonjour,
Une façon de faire; au début de la macro, mets :
Dim Ligne
Ligne = 17
et à la place de :
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
(ce qui fait que tu écris toujours sur la ligne 18), mats :
Ligne = Ligne + 1
Worksheets("Draft").Range("A" & Ligne).PasteSpecial
(xlPasteAll)
Cordialement.
Daniel


Bonjour le forum,

Je débute en VBA. Je cherche à importer des lignes de la feuille
Entity dans
la feuille Draft en fonction de la valeur que contient les cellules de la
colonne F de la feuille Entity.
Je précise : si dans la colonne F de la feuille draft la valeur de la
cellule
est = "base" alors copy paste sur la feuille ("draft")

Le code ci-dessous ne copie que la derniere cellule comprenant
"base" et je
ne comprends pas pourquoi. Pensez-vous que je devrais plutot passer par des
filtres VBA ? Merci de votre aide.

Code :Sélectionner tout - Visualiser dans une fenêtre à
part1234567891011
Dim zone As Range
Dim cellule As Range
Set zone = Worksheets("entity").Range("F18:F134")
For Each cellule In zone
If cellule = "base" Then
cellule.EntireRow.Copy
End If
Next
Worksheets("Draft").Range("A18").PasteSpecial (xlPasteAll)
End Sub




merci bcp pr ton aide....; )