Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 copier des cellules d'un tableau à la fin d'un autre tableau d'une autre feuille

marcosisi

XLDnaute Nouveau
Bonjour je suis novice dans le milieu de VBA et j'aimerai profiter vos lumières.

j'ai un tableau dans une feuille nommée "plat".
En colonne "G" il y a liste déroulante (farine,sucre..)

J'ai un autre tableau dans une feuille nommée "pert. (même classeur)

j'aimerai que toutes les lignes ayant "Sucre" dans la feuille "Plat" soit collé en dernière ligne de mon tableau "Pert"

voici le code que j'ai commencé à écrire mais il ne fonctionne pas du tout.
quelqu'un a t'il une suggestion?

Private Sub CommandButton1_Click()
Dim i As Integer
i = 1
Do While Sheets("plat").Cells(2, i) <> 0
If Worksheets("plat").Cells(2, i) = "sucre" Then
Sheets("plat").Range("A"& i)"O"& i).Copy
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select
ActiveSheet.Paste
i = i + 1
End

pour info mes tableaux s'étendent de la ligne A à O

Merci beaucoup
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Marcosisi,
Vous n'auriez pas un petit fichier test représentatif ? Ce serait quand même plus simple.
Sinon on doit supposer :
- Les cellules contiennent des nombres ou des chaines :
Do While Sheets("plat").Cells(2, i) <> 0 ce serait des nombres
Do While Sheets("plat").Cells(2, i) <> "" ce serait des chaines
- Certaines cellules ne contiennent que "Sucre", ou contiennent elles des chaines avec le mot "sucre"
- Un smiley s'est glissé dans votre code, on peut supposer que c'est :
Sheets("plat").Range("A"& i) :"O"& i).Copy
mais dans ce cas c'est : Sheets("plat").Range("A"& i & ":O"& i).Copy
- S'il y a un Do, il doit y avoir un Loop.
- S'il y a un If, il doit y avoir un End If
- La fin doit se terminer par End Sub, et non simplement End.
 
Réactions: cp4

Discussions similaires

Réponses
9
Affichages
342
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…