XL 2010 Dupliquer ligne d'un onglet dans un autre sous condition, et inversement

Xplorer

XLDnaute Nouveau
Bonjour !

Je suis en train d'essayer de trouver des outils excel pour mon projet d'organisation. dans excel 2007
J'ai déjà compris comment avoir un menu déroulant avec des couleurs, voir en image.
Et j'ai compris comment trier des lignes selon condition, c'est déjà beaucoup pour moi. J'en suis à découvrir que dans l'onglet développeur je peux enregistrer des macros.

J'aimerais maintenant faire en sorte que si telle condition ( du menu déroulant ) est sélectionnée, la ligne entière soit ajoutée dans un autre onglet, que toutes les lignes ajoutées ( sous condition ) se mettent les unes à la suite des autres.
Et si ensuite une autre condition est sélectionnée, que ça supprime la duplication précédente de la ligne dans l'autre onglet, tout en gardant les lignes de l'autre onglet les unes à la suite des autres sans blanc entre certaines. Je ne sais pas si c'est possible.
Ca permettrait de dispatcher différentes données dans plusieurs onglets ( matrice d'eisenhower, kanban ... ) .

en tous cas je ne sais pas très bien par quoi commencer simplement, pour ensuite complexifier les choses dans la mesure du possible.
Est-ce que vous sauriez m'aider un peu svp ? Merci !
 

Pièces jointes

  • 1.jpg
    1.jpg
    130.8 KB · Affichages: 53

Staple1600

XLDnaute Barbatruc
Re

Comme je le disais tout à l'heure
Une fichier exemple détaillé avec deux onglets
INITIAL (<= ce que j'ai)
RESULTAT (<= ce que je veux)
Donc avec un exemple de résultat fait manuellement sera un plus pour t'apporter une aide pile dans la cible.
 

Xplorer

XLDnaute Nouveau
Re

Je l'ai écrit à la mimine avec les doigts que j'utilise en semaine et les week-end

Pour avoir du code VBA qui s'écrit tout seul, il y a l'enregistreur de macros
(Mais il se borne à enregistrer ce que fait l'utilisateur manuellement)
Mais c'est une bonne porte d'entrée pour découvrir le VBA.
Tu veux dire qu'en voyant le code qu'écrit l'enregistreur, on peut commencer à écrire le code manuellement en apprenant grâce à ça ?

J'imagine que logiquement, je devrais intégrer cette condition à la suite :

si changement de condition en onglet 1, à la ligne sélectionnée > effacer la duplication précédente en onglet 2, et dupliquer la ligne de l'onglet 1 dans l'onglet 3. Ce serait ça ?
 

Staple1600

XLDnaute Barbatruc
Re

Exemple
Macro de l'enregistreur
VB:
Sub Macro1()
Range("A1").Select
Selection.FormulaR1C1 = "hello world"
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
End With
End Sub
Et la version adaptée de la précédente
VB:
Sub faitalamain()
With Cells(1)
    .Value = "hello world": .Font.Bold = True
    .Font.Color = vbRed: .Interior.Color = vbYellow
End With
End Sub
 

Xplorer

XLDnaute Nouveau
Re

Exemple
Macro de l'enregistreur
VB:
Sub Macro1()
Range("A1").Select
Selection.FormulaR1C1 = "hello world"
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
End With
End Sub
Et la version adaptée de la précédente
VB:
Sub faitalamain()
With Cells(1)
    .Value = "hello world": .Font.Bold = True
    .Font.Color = vbRed: .Interior.Color = vbYellow
End With
End Sub
ah oui, donc manuellement tu as viré tout ce qui ne t'intéressait pas, et tu as éditer certaines parties, à partir de cette base
 

Staple1600

XLDnaute Barbatruc
Re

C'était simplement pour illustrer que l'enregistreur de macros permet d'avoir un code de base quand on débute en VBA.
Et sur cette base, on peut faire des modifications (après tests et recherches) pour au final obtenir un code plus épuré.

Donc je t'invite grandement à user et abuser de cet outil.
;)
 

Xplorer

XLDnaute Nouveau
Re

C'était simplement pour illustrer que l'enregistreur de macros permet d'avoir un code de base quand on débute en VBA.
Et sur cette base, on peut faire des modifications (après tests et recherches) pour au final obtenir un code plus épuré.

Donc je t'invite grandement à user et abuser de cet outil.
;)
oui c'est ce que j'avais compris, et tu as raison, c'est une bonne voie.

Je me demander par contre oû trouver certains fonctions comme "si telle condition en onglet 1, supprimer finalement telle ligne". là ça a l'air complexe ....

je vois qu'avec la macro, on enregistre des fonctions que l'on voit dans le ruban en haut. Seulement sont-elles toutes là, ou est-ce qu'au delà, il y a du code manuel qui ne trouve pas son pendant dans le ruban d'outils ?
 

Xplorer

XLDnaute Nouveau
Re

C'était simplement pour illustrer que l'enregistreur de macros permet d'avoir un code de base quand on débute en VBA.
Et sur cette base, on peut faire des modifications (après tests et recherches) pour au final obtenir un code plus épuré.

Donc je t'invite grandement à user et abuser de cet outil.
;)
par exemple, ce "if", cette condition .... est-ce que cette fonction existe d'emblée dans les outils du ruban quelque part ?
 

Staple1600

XLDnaute Barbatruc
Re

Non, comme je l'ai dit l'enregistreur de macros enregistre les actions de l'utilisateur.

Pour le reste, il faut se fader la doc VBA

Ou étudier Excel et le VBA pendant 13 ans à l'Abbaye de la Cambre à Ixelles comme je le fis dès l'âge de 15 ans
Abbaye-de-la-Cambre_bffba7ed45326788ce1beb1b5b32d8bfd80abb30_sq_640.jpg

Ma Cellule était au dernier étage (fenêtre du milieu)
 

Xplorer

XLDnaute Nouveau
Re

Non, comme je l'ai dit l'enregistreur de macros enregistre les actions de l'utilisateur.

Pour le reste, il faut se fader la doc VBA

Ou étudier Excel et le VBA pendant 13 ans à l'Abbaye de la Cambre à Ixelles comme je le fis dès l'âge de 15 ans
Abbaye-de-la-Cambre_bffba7ed45326788ce1beb1b5b32d8bfd80abb30_sq_640.jpg

Ma Cellule était au dernier étage (fenêtre du milieu)
hé bé ! ça devait être fun ! ;)
Beau lieu en tous cas. Il m'est arrivé de passer 10 jours dans une église ou deux ( et une forteresse ) , pour les scanner en 3d pour de l'archi du patrimoine.

D'accord. Je me demandais si dans les actions enregistrables ( accessibles dans le ruban ) , il y avait ce genre de fonctions. Mais donc non, pour aller plus loin, elles n'y sont pas, il faut aller dans la doc vba. ok.
 

Xplorer

XLDnaute Nouveau
Re

Non, comme je l'ai dit l'enregistreur de macros enregistre les actions de l'utilisateur.

Pour le reste, il faut se fader la doc VBA

Ou étudier Excel et le VBA pendant 13 ans à l'Abbaye de la Cambre à Ixelles comme je le fis dès l'âge de 15 ans
Abbaye-de-la-Cambre_bffba7ed45326788ce1beb1b5b32d8bfd80abb30_sq_640.jpg

Ma Cellule était au dernier étage (fenêtre du milieu)

Salut Staples !
Je trouve enfin le temps de me replonger un peu dans Excel.

Je me disais qu'il fallait que j'utilise les fonctions SI, Et, OU, et RechercheV ... sans doute ...

mais je n'arrive pas à les mettre en place. Dans l'idée je voulais faire ça :

Si dans l'onglet 1, en case E17 ( par exemple ) "Res Liste" s'affiche dans le menu déroulant .... Alors dupliquer la ligne de l'onglet 1 dans l'onglet 2.

Maintenant, si la valeur du menu déroulant change, supprimer cette ligne de l'onglet 2 ... et éventuellement la dupliquer ailleurs.

Mais je n'y arrive pas. C'est encore trop complexe pour moi.

Sinon, j'ai trouvé je ne sais plus oû une matrice d'eisenhower excel qui fonctionne réellement comme ça. Quand tu changes une valeur du menu déroulant, ça reste réactif. C'est déjà pas mal.
 

Pièces jointes

  • eisenhower.xlsx
    49.2 KB · Affichages: 7
Dernière édition:

Xplorer

XLDnaute Nouveau
Re

Non, comme je l'ai dit l'enregistreur de macros enregistre les actions de l'utilisateur.

Pour le reste, il faut se fader la doc VBA

En observant les formules de la matrice eisenhower ( qui reporte des lignes depuis task list vers la matrice selon les conditions de menu déroulant présentées, je commence à comprendre quelques éléments :

=SI(OU(J4="";J4=0);"";RECHERCHEV(J4;'Task List'!$A$2:$I$1000;3;FAUX))

Je décompose :

=SI(OU(J4="";J4=0);_________""__________;RECHERCHEV(J4;'TaskList'!$A$2:$I$1000;3;FAUX))
.....Test logique.................Valeur si vrai.......................................Valeur si Faux.......................

Les cellules J4 en référence ont l'air invisibles, je ne les trouve pas.

La décomposition de RechercheV .... là j'ai du mal, surtout avec les "$" .... ce que ça signifie ds ce cas là. Mais ... on progresse un petit peu ...
 

Xplorer

XLDnaute Nouveau
Je continue. petit pas après petit pas. Déjà je comprends maintenant que pour $A$2, on parle de référence absolue. Lors de la duplication d'une cellule, si on modifie la cellule A, la cellule B qui contient la duplication de la cellule A sera modifiée aussi.
Ca m'arrange ! je cherchais justement cette fonction.
 

Xplorer

XLDnaute Nouveau
Hmmm ..... Certaines colonnes n'apparaissent pas ... D ... J .... Voilà pourquoi.
Ce doivent être des colonnes qui servent d'interface de report .. Telle valeur du menu de l'onglet 1 signifie "valeur rien , ou valeur 1" par exemple. Enfin je suppose.
Je ne sais pas comment faire apparaître ces colonnes invisibles.
 

Pièces jointes

  • j.JPG
    j.JPG
    69.9 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 020
Membres
112 637
dernier inscrit
pseudoinconnu