XL pour MAC Reporter une ligne entière en fonction d'un mot présent

Val31

XLDnaute Nouveau
Bonjour,

Je suis novice dans Excel.
Dans mon fichier :
J'ai une feuille A avec plusieurs colonnes:
N°, Date de comptabilisation,LIBELLE, CATEGORIE, PERIODE, COMPTE, RECETTE, DEPENSE

Lorsque dans une cellule (Colonne "COMPTE") il y a "XY" j'aimerais que la ligne qui la contient soit reportée en entier dans la feuille B

Comment procéder ?

Merci
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Val,

(re)bienvenue sur le site XLD ! :)

je te propose ce code VBA (non testé, car tu n'as pas joint de fichier) :

VB:
Option Explicit

'remarques
'  * la 1ère feuille "Feuil1" est ta feuille "A"
'  * la 2ème feuille "Feuil2" est ta feuille "B"
'  * la colonne "COMPTE" est la colonne F
'  * ligne 1 : en-têtes de colonnes

Sub CpyLigs()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim nlm&, dlg&: nlm = Rows.Count
  dlg = Cells(nlm, 6).End(3).Row: If dlg = 1 Then Exit Sub
  Dim lg1&, lg2&: Application.ScreenUpdating = 0
  With Worksheets("Feuil2")
    lg2 = .Cells(nlm, 1).End(3).Row + 1
    For lg1 = 2 To dlg
      If Cells(lg1, 6) = "XY" Then
        Cells(lg1, 1).Resize(, 8).Copy
        .Cells(lg2, 1).PasteSpecial -4163
        lg2 = lg2 + 1
      End If
    Next lg1
    Application.CutCopyMode = 0
    .Select: [A1].Select
  End With
End Sub



pour la prochaine fois, ce sera mieux que tu envoies un fichier exemple (sans données confidentielles) ; pour faire cela, tu pourras utiliser le bouton "Joindre un fichier" situé en bas à gauche d'un post en cours d'édition.​

soan
 
Dernière édition:

Val31

XLDnaute Nouveau
Super merci d’avoir pris el temps de me répondre !
Je ne sais par contre pas du tout à quel endroit le code s’insère dans Excel ?
Puisqu’il s’agit d’une règle générale qui s’appliquer à la feuille À j’imagine que c’est sur la feuille B mais à quel endroit ?

Je vais essayer d’envoyer un fichier

Merci d’avance
 

soan

XLDnaute Barbatruc
Inactif
@Val31 (salut JHA)

* non, mon code VBA n'est pas à mettre sur une feuille de calcul !

* appuie sur les touches Alt F11 ➯ ça va sur la fenêtre
"Microsoft Visual Basic pour Applications"

* fais Alt i m ➯ ça ajoute Module1, dont la page de code vierge
et toute blanche apparaît sur le côté droit.

* c'est sur cette page blanche que tu dois faire un copier / coller
de mon code VBA.

* facultatif : tu peux faire Alt d l (L minuscule) pour le compiler

* fais Alt F11 pour retourner sur la feuille de calcul Excel

* fais Alt F8 ➯ fenêtre "Macro"

comme y'a qu'une seule macro, elle est déjà sélectionnée
dans la liste : c'est CpyLigs ; clique à droite sur le bouton
Exécuter ➯ ça lance la macro sélectionnée. :)

soan
 

Val31

XLDnaute Nouveau
@Val31 (salut JHA)

* non, mon code VBA n'est pas à mettre sur une feuille de calcul !

* appuie sur les touches Alt F11 ➯ ça va sur la fenêtre
"Microsoft Visual Basic pour Applications"

* fais Alt i m ➯ ça ajoute Module1, dont la page de code vierge
et toute blanche apparaît sur le côté droit.

* c'est sur cette page blanche que tu dois faire un copier / coller
de mon code VBA.

* facultatif : tu peux faire Alt d l (L minuscule) pour le compiler

* fais Alt F11 pour retourner sur la feuille de calcul Excel

* fais Alt F8 ➯ fenêtre "Macro"

comme y'a qu'une seule macro, elle est déjà sélectionnée
dans la liste : c'est CpyLigs ; clique à droite sur le bouton
Exécuter ➯ ça lance la macro sélectionnée. :)

soan
Bonjour

Merci pour les explications
Désolée j'ai du m'absenter plus long que prévu.

Je vous joint le fichier

alors pour être plus claire:
j'aimerais que chaque ligne dans la feuille "CCP7" soient reportée en fonction de la catégorie mentionnée Exemple une ligne contenant:
5700 Contributions AVS
Serait reporté dans la feuille qui est normée " 5700 Contributions AVS"
D'avance merci

p.S. j'arrive pas à joindre le fichier, j'ai un message qui dit qu'il est trop lourd... comment faire?
 

Discussions similaires