Macro fenêtre + déplacement de ligne

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
Arkadia25
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 6 juin 2015
Version d'Excel : 2007

Message par Arkadia25 » 2 juillet 2015, 12:08

Bonjour,

Après réflexion j'ai trouvé une solution pour mon problème de tableau, mon objectif ici est qu'à chaque ajout de ligne dans mon tableau test, une fenêtre s'ouvre et me demande dans quel feuille je veux copier coller les colonnes BCD (donc pas la ligne entière), je posterai le tableau test ce soir. Merci d'avance.

Cordialement,
Arkadia
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'001
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 2 juillet 2015, 12:48

Oo ::B-
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
A
Arkadia25
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 6 juin 2015
Version d'Excel : 2007

Message par Arkadia25 » 2 juillet 2015, 12:51

Ouais bizarre tout ça, en plus je me suis mal exprimé je voulais dire les cellules des colonnes BCD, voici le tableau test du coup.

Avec le fichier c'est plus simple (pour raison de confidentialité j'ai modifié les infos), donc en fait il y a déjà une macro de tri automatique, affecté à la colonne B, dès qu'on rentre une donnée dans B, toute la ligne se trie, donc il faut en premier compléter toutes les autres colonnes avant B. J'aimerais qu'à la fin de la saisie de B, on ait une fenêtre qui s'ouvre et qui demande dans quelle feuille doit on copier/coller les colonnes BCD (pas besoin des autres données pour ce fichier qu'on va nommer feuil2). Dans la fenêtre on aurait une liste de choix du style Feuil2, Feuil3, Feuil4... Feuil2-4 comporte également une macro de tri automatique, ce qu'il faudrait c'est rajouter la ligne en question toujours à la dernière ligne non remplie (lastrow je crois mais je ne suis pas sûr). Voilà les explications, étant donné que l'enregistrement de macro ne fonctionne pas ici à cause de la fenêtre, je sollicite votre aide.
Merci d'avance.

Cordialement,
Arkadia
Tableau test.xlsm
(51.18 Kio) Téléchargé 16 fois
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'001
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 2 juillet 2015, 14:01

Vu que vous ne savez pas trop s'il faut copier des colonnes ou des lignes je copie tout.
Option Base 1
Sub test()
    Dim a, b(), i, n, f%
    a = Feuil1.UsedRange
    ReDim b(UBound(a), 3)
    For i = 5 To UBound(a, 2)
        n = n + 1
        b(n, 1) = a(i, 1): b(n, 2) = a(i, 2): b(n, 3) = a(i, 3)
    Next
    f = InputBox("T'as pas une feuille s'te plait ?!")
    Sheets(f).[A65000].End(xlUp)(2).Resize(UBound(b), 3) = b
End Sub
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
A
Arkadia25
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 6 juin 2015
Version d'Excel : 2007

Message par Arkadia25 » 2 juillet 2015, 17:38

Merci de votre réponse je vais tout de suite essayer la macro, oui quand je parle des colonnes BCD je parle des cellules BAP / BLABLABLA et 1 par exemple.

Alors techniquement parlant, je n'arrive pas à séparer cette macro des autres dans visual basic "option base 1" est considéré comme lié à la macro précédente (le trait de séparation étant en dessous).
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'001
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 2 juillet 2015, 17:59

Option base 1 vous le coupez collez en haut de votre module. et si...ce qui merdouille merdouille encore vous inserez un nouveau module et vous copiez la macro + option base 1 dedans
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
A
Arkadia25
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 6 juin 2015
Version d'Excel : 2007

Message par Arkadia25 » 2 juillet 2015, 18:14

C'est bon, la macro fonctionne lorsque je la lance en manuel il faut que je modifie la plage à copier et la destination par contre étant donné qu'on a un tri automatique il faudrait que la ligne saisie soit directement copiée et non une plage puisqu'on ne peut pas la prédire, je ne sais pas si c'est possible, en tout cas merci beaucoup ça m'avance bien ton code :).
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'001
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 2 juillet 2015, 18:37

bah...débrouillez vous pour lancer cette macro avant votre tri !
Option Base 1
Sub test()
    Dim a, b(), f%
    Set a = Feuil1.[b65000].End(xlUp)
    ReDim b(1, 3)
    b(1, 1) = a: b(1, 2) = a.Offset(0, 1): b(1, 3) = a.Offset(0, 3)
    f = InputBox("Copiez ou ?!")
    Sheets(f).[A65000].End(xlUp)(2).Resize(UBound(b), 3) = b
End Sub
Ceci dit copier -coller 3 cellules cela prend même pas 30 secondes...
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
A
Arkadia25
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 6 juin 2015
Version d'Excel : 2007

Message par Arkadia25 » 2 juillet 2015, 18:55

Ah ba oui j'ai aucune notion de VBA ça va vachement m'aider ahaha j'ai pas de bouquin rien, donc si jamais vous avez un site qui répertorie toutes les significations ben ça m'aiderait plus pour l'instant je sais juste que i c'est sensé être la colonne lol.
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'001
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 2 juillet 2015, 19:06

C'est pas vraiment en vba que vous avez besoin d'un coup de main, vba c'est assez pragmatique comme raisonnement donc avec un peu d'entrainement tout se fait mais là... Vous remplissez 3 cellules et hop, tout de suite tout se met à jour. \o/ super ! Mais si l'utilisateur à un doute ? Où qu'il c'est trompé ? Allé hop...Cherche ta ligne dans la feuille active plus dans l'autre. Résultat, il aura perdu 7 fois plus de temps que vous ne vouliez lui en faire gagner. ..Je suis désolé mais j'ai envie d'aider en étant utile dans autre chose que du futile! Mais ce n'est que mon avis, d'autres viendront vous aider avec plaisir.
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message