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?
 

Val31

XLDnaute Nouveau
Bonjour à tous,

Je pense qu'il nous manque quelques explications, sur le fichier du post #8, quels sont les éléments à copier, sur quelles feuilles?

JHA
Bonjour
Je vais essayer de clarifier au mieux, sorry c'est pas hyper simple d'expliquer ;-)
Dans le fichier il ya plusieurs feuille, l'idée est de reporter une ligne entrière d'une feuille A à une autre B en fonction de la catégorie de la ligne en question.
La catégorie est la même que le nom la feuille B:


Dans la feuille nommée CCP7 il y a une colonne "catégorie" (par exemple la catégorie :5700 Contributions AVS) et j'aimerais que en fonction du nom de cette catégorie la ligne entière soit copiée (reportée) dans la feuille qui se nomme "5700 Contributions AVS"
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ée en entier dans la feuille qui est normée " 5700 Contributions AVS"
Est ce que c'est un peu plus clair ? ;-)
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Apparemment, tu dois garder les anciennes données sur les autres fichiers.
Je pense qu'il faut utiliser un code VBA pour réaliser ta demande.
Désolé car je ne peux pas t'aider (je suis nul pour faire cela en VBA).
Patience, il y a des as sur ce forum pour ce genre de demande.

JHA
 

Discussions similaires

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 752
dernier inscrit
fred13340