Transfert des données d'une Feuille a une autre

salhi_haithem

XLDnaute Junior
SVP Aidez Moi Transfert des données d'une Feuille a une autre

J'ai une feuille base qui contient des actions d’amélioration qui est constitué de plusieurs colonnes et j'ai une autre
Feuille Rapp.Resp qui me permet de faire le récapitulatif de la feuille base
Le but c'est de Transfert des données de la base vers Rapp.Resp selon le nom du responsable dans la cellule I6 et selon L’état dans la cellule M6

j'ai trouver une solution avec un tableau dynamique croisé dans la feuille journal mais c'est pas très rentable si les actions du responsable dépasse les 20 ou 30 actions
est ce qu'il est possible de faire le transfert avec un code vba sans avoir passer par un tableau dynamique croisé..
et le transfert ce fait selon le nom du responsable dans la cellule I6 et selon L’état (En cours , A Suivre , A Verifier, Cloture...) dans la cellule M6 dans la feuille Rapp.Resp

Merci d'avance
 

Pièces jointes

  • ACP Version (1).xlsm
    246.3 KB · Affichages: 38
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Bonsoir salhi_haithem,

Avant tout, peux-tu éditer ton premier message et supprimer le "SVP aidez-moi" dans le titre de la discussion?
Merci

Pour tenter de répondre (en espérant que j'aie bien compris) regarde la pièce jointe:
- en feuille Base, colonne AQ, une formule affiche le n° de ligne, si les deux conditions sont vérifiées
- en feuille rapport, une formule à copier en bas et à droite (j'ai copié sur 7 lignes et jusqu'à l'avant-dernière colonne: la dernière, je te laisse décider à quoi elle doit correspondre)

Attention:
-il vaut mieux éviter les cellules fusionnées
-pour que la formule fonctionne, il faut que les titres de colonnes soient identiques (il y avait parfois un espace derrière certains titres)

... il te reste à trouver un titre commun aux 2 feuilles, pour la dernière colonne et à "soigner" les formats

J'ai supprimé la feuille avec le TCD et les ligne inutiles pour alléger le fichier

Bonne nuit, le monde
 

Pièces jointes

  • acp-version 1 (salhi_haithem).xlsm
    67.4 KB · Affichages: 53

salhi_haithem

XLDnaute Junior
Re : Transfert des données d'une Feuille a une autre

Merci beaucoup c'est très gentil de ta part et merci pour ta réponse ça fait l'affaire juste un petit souci lorsque M6 est vide je veux qu'il m'apporte tous les actions du responsable c'est a dire les actions en cours , a vérifier , clôturer pour le nom du responsable dans la cellule I6 et un autre chose lorsqu'il n'as pas de nom de responsable il m'apporte toutes les actions
Et merci une autre fois
 

Modeste

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Bonjour salhi_haithem,

... Et modifier le titre dans ton premier message, tu ne veux pas le faire?
(sous ton message initial > Modifier le message > corrige dans la zone Intitulé > Enregistrer les changements)
[Edit:] merci pour le titre! :)


Pour ton "petit souci" :rolleyes:, il faudrait que tu précises 2-3 choses:
  • s'il n'y a pas de nom de responsable en I6, tu dis qu'il faut rapporter toutes les actions!? Ou alors uniquement les actions dont l'état est celui renseigné en M6, pour l'ensemble des responsables?
  • que fait-on si I6 et M6 sont vides?
  • tu es certain qu'ajouter des tableaux sous la ligne 30 de la feuille Rapp. Resp est une bonne idée?
  • tu ne crains pas qu'il y ait "double emploi" entre ce que tu nous demandes ici et les macros déjà présentes dans ton fichier?

Pour avancer, seules les réponses aux 2 premières questions sont nécessaires. Les deux suivantes sont à ton usage personnel et tu en feras ... ce que bon te semble!
 
Dernière édition:

salhi_haithem

XLDnaute Junior
Re : SVP Aidez Moi Transfert des données d'une Feuille a une autre

Merci Mr Modeste pour ta réponse et Pour le nom de la discussion C'est Fait
  • Si la cellule du responsable I6 est Vide et la cellule Etat M6 Vide ca va m'apporter tout les actions de tout le monde
  • Si il y a un nom de responsable et la cellule Etat M6 vide ca va m'apporter tout les actions du nom responsable indiquer a la cellule I6
  • Si la cellule I6 vide il n'y a pas de nom de responsable, et la cellule Etat M6 n'est pas vide il va m'apporter ce qui est indiquer c-a-dire si je veux tout les actions clôturé de tout les responsables je modifie la cellule M6 et la cellule I6 reste vide

Si ça pose un problème je peux créer un responsable que je peux l’appeler Tous et un Etat Tous ça va faciliter le travail

Et Merci une autre fois
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Re,

Merci pour le titre :)

Si j'ai bien compris, modifie la formule en AQ2 de la feuille base comme ceci:
Code:
=SI((SI(Rapp.Resp!$I$6<>"";Rapp.Resp!$I$6=J2;VRAI))*(SI(Rapp.Resp!$M$6<>"";Rapp.Resp!$M$6=AA2;VRAI));LIGNE();"")
et recopie-la vers le bas (il y a peut-être moyen de faire plus court et plus simple, mais je dois m'absenter)

Teste tous les cas de figure possibles, pour vérifier qu'ils sont bien tous pris en charge.

Attention: il y a une erreur dans la formule que j'ai utilisée dans la feuille Rapp. Resp: il faut que la PETITE.VALEUR s'applique à la plage AQ2:AQ60 et non AQ3:AQ60
Comme il faut modifier partout, tu peux utiliser le Rechercher-Remplacer en demandant de chercher Base!$AQ$3 et remplacer par Base!$AQ$2. Dans les Options, demander à Regarder dans: Formules

À plus tard,
 

cathodique

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Bonjour,

Sauf si je n'ai pas bien compris tes besoins. Vois si ça te convient. Comme Modeste te l'avait dit, évite les cellules fusionnées. Et il sait de quoi il parle.

J'ai nommé les colonnes de la feuille 'liste', pour utiliser la validation du responsable et de l'état sur la feuille 'Rapp.Resp' (I6 et M6).

Donc tu sélectionnes et tu valides avec le commandbutton que j'ai rajouté sur la feuille.

Je me suis inspiré d'un de mes fichiers pour lequel j'avais reçu une gracieuse aide des membres du forum dont Modeste.
 

Pièces jointes

  • acp-version 2 (salhi_haithem).xlsm
    69.9 KB · Affichages: 37

salhi_haithem

XLDnaute Junior
Re : Transfert des données d'une Feuille a une autre

Mr cathodique Merci beaucoup c'est très gentil de ta part et merci pour ta réponse
c'est presque ce que je veux sauf il y a un petit souci la liste déroulante Etat ne fait pas son travail lorsque tu mets En cours comme exemple il peux t'apporter des actions Planifiée et des actions Clôturé
 

cathodique

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Avant tout, sur le forum on se tutoie. Alors STP, plus de Mr car cathodique n'est qu'un pseudo.

Je ne comprends pas vraiment ton besoin. Le code te renvoie un message si jamais cellule I6 (nom) est vide et sort de la procédure. Si par exemple en I6=Jamel et en M6= vide, tu auras sur ta feuille toutes les actions qui concerne Jamel. Par contre si tu choisis pour M6 un etat (ex:En cours), alors le code te renvoie seulement les actions de Jamel qui sont en cours.

Maintenant si tu changes l'état sans changer de responsable (ici c'est Jamel), tu dois cliquer sur le bouton.

J'ai vu sur ton fichier que tu as à partir de la ligne 32, 3 tableaux et des graphes, j'espère que les données que tu récupères à partir de ta base ne dépassent pas la ligne 31; sinon tes tableaux seront écrasés.

Essaie de comprendre le code, effectue tes choix sur la feuille Rapp.Resp, ensuite active la feuille base puis ajoute la fenêtre de VBE et mets le curseur dans la procédure "FiltresAutos" (module2), et maintenant appuie la touche F8 pour exécuter le code ligne par ligne, tu vas vite comprendre le fonctionnement.
 

salhi_haithem

XLDnaute Junior
Re : Transfert des données d'une Feuille a une autre

merci a vous tous pour votre aide
Sur un Autre Forum Mr MFerrand il ma aider pour le code et je vais mettre la solution idéal qui répond a mon besoin
Et Je Joint Le Fichier

Code:
    Sub RappResp()
        Dim rap(), RR, Ba, resp$, état$, n%, i%, j%, k%
        'Affectation des critères à des variables chaîne ('String')
       'Si le critère responsable manque, un message le signale et la procédure s'interrompt
       'Si le critère état n'est pas servi, il est remplacé par un caractère joker ('*')
       ' permettant la prise en compte de tous les états
       With Worksheets("Rapp.Resp")
            If .Range("I6") <> "" Then
                resp = .Range("I6").Value
                If .Range("M6").Value <> "" Then
                    état = .Range("M6").Value
                Else
                    état = "*"
                End If
            Else
                MsgBox "Indiquer un nom de responsable (et éventuellement l'état recherché) avant de" _
                 & " lancer la constitution du rapport.", vbInformation, "Données initiales manquantes"
                Exit Sub
            End If
        End With
        'On affecte à la variable 'Ba' un tableau des numéros de colonnes des données à prélever dans la base
       'On dimensionne une variable-tableau ('rap') sur 13 colonnes (0 à 12) pour recueillir les données
       Ba = Array(1, 16, 19, 28, 29, 30, 31, 32, 9, 26, 25, 27, 24)
        ReDim rap(12, 0)
        'Prélèvement des données dans la base
       'Si les critères responsable et état sont ceux sélectionnés (pour l'état comparaison au moyen de
       ' l'opérateur 'Like' permettant de l'ignorer s'il n'a pas été servi)
       'On ajoute dans ce cas une ligne au tableau 'rap' (qu'on redimensionne au fur et à mesure)
       With Worksheets("Base")
            n = .Cells(.Rows.Count, 1).End(xlUp).Row
            For i = 2 To n
                If .Cells(i, 10) = resp And .Cells(i, 27) Like état Then
                    k = k + 1
                    ReDim Preserve rap(12, k)
                    For j = 0 To 12
                        If .Cells(i, Ba(j)) <> "" Then rap(j, k) = .Cells(i, Ba(j))
                    Next j
                End If
            Next i
        End With
        'Tri du tableau sur la priorité (élément d'indice 'colonne' 10 dans le tableau 'rap')
       ' (l'indice 'ligne' 0 est utilisé pour procéder aux substitutions ('switch') destinées à
       ' reclasser les lignes du tableau)
       For i = 1 To k - 1
            For j = i + 1 To k
                If rap(10, j) < rap(10, i) Then
                    For n = 0 To 12
                        rap(n, 0) = rap(n, i)
                        rap(n, i) = rap(n, j)
                        rap(n, j) = rap(n, 0)
                    Next n
                End If
            Next j
        Next i
        'On affecte à la variable 'RR' un tableau des colonnes cible à servir (opération nécessaire en
       ' raison des fusions de cellules)
       RR = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19)
        'Affectation du tableau trié à la feuille cible
       With Worksheets("Rapp.Resp")
            n = .Cells(.Rows.Count, 1).End(xlUp).Row
            If n >= 11 Then .Range("A11:S" & n).ClearContents
            For i = 1 To k
                For j = 0 To 12
                    .Cells(i + 10, RR(j)).Value = rap(j, i)
                Next j
            Next i
        End With
    End Sub
 

Pièces jointes

  • salhi_ACP Version (4).xlsm
    95.9 KB · Affichages: 49

cathodique

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Bon, étant donné que tu surfes d'un forum à un autre. Je te souhaite une bonne continuation.

Je te dis simplement que les 2 codes donnent les mêmes résultats. Le mien (post #7) utilisent des auto-filtres et celui de l'autre forum a utilisé des variables tableaux (qui ont le mérite d'être plus rapide quand il s'agit de très grandes base de données).

ce n'est pas un forum mais des forums, pas très sympa ça Mr salhix [XL-2007] Transfert des données d'une Feuille a une autre

et d'où tu as eu la dernière solution Transfert des données d'une Feuille a une autr : Excel - VBA

Fais au moins l'effort de comprendre ces codes. Mon code a au moins le mérite de ne pas tout effacer sur la feuille Rapp.Resp.

Comme je te l'ai déjà dit je te souhaite une bonne continuation.

Bonne soirée.
 
Dernière édition:

salhi_haithem

XLDnaute Junior
Re : Transfert des données d'une Feuille a une autre

Cher cathodique j’apprécie ton aide et pourquoi tu es en colère
Ou est le mal si je surf sur d'autre forum
j'ai un revue de direction le mardi matin et je ne sais pas quoi faire et le temps presse
j'ai bien appris des choses avec ton code
merci encore pour ton aide
 

cathodique

XLDnaute Barbatruc
Re : Transfert des données d'une Feuille a une autre

Bonjour,

Je ne suis pas du tout en colère, mais déçu par ta démarche. Modeste t'avait donné une solution à laquelle tu n'as donné aucune suite.

Je t'ai proposé un code, en précisant si j'avais bien compris tes besoins. Au lieu de bien exposer tes besoins, tu nous postes un autre code.

Ce n'est pas ainsi que l'on peut avancer. De plus on vient sur un forum pour apprendre, non pas pour trouver une solution dans l'urgence.

Modeste, moi et Fernand t'avons dit d'éviter les cellules fusionnées, elles sont sources de problèmes.

Mais si c'est pour la présentation tu peux faire une procédure qui s’exécute après le transfert des données pour fusionner tes cellules.

Bonne continuation pour la suite.
 

Discussions similaires

Statistiques des forums

Discussions
311 727
Messages
2 081 962
Membres
101 852
dernier inscrit
dthi16088