Excel VBA - Comment ventiler des données sur plusieurs feuilles

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.พ. 2025

ความคิดเห็น • 57

  • @phihh6873
    @phihh6873 4 ปีที่แล้ว

    Bonjour,
    Merci de vous être penché si rapidement sur mon problème.
    J'ai modifié quelques lignes et maintenant tout fonctionne comme je le souhaite.
    Encore bravo pour vos vidéos.
    Continuez

  • @mourtalladiop8649
    @mourtalladiop8649 7 ปีที่แล้ว +1

    Bonjour, à vrai dire, vous avez la meilleure chaîne TH-cam, c'est claire, c'est net , un très grand merci . que Dieu vous bénisse. merci encore

    • @albertomabika3600
      @albertomabika3600 3 ปีที่แล้ว

      je valide chaque fois que je regarde une vidéo j'apprends facilement .

  • @christineg.2073
    @christineg.2073 4 ปีที่แล้ว

    Un grand merci pour ce tuto avec des explications à la portée de tous. Merci

  • @philippecrevisier6880
    @philippecrevisier6880 7 ปีที่แล้ว

    Bonjour,
    Merci pour ce tuto, vos explications sont très claires et j'ai réussi à l'adapter pour mon projet.Bien cordialement.

  • @wuluba2011
    @wuluba2011 7 ปีที่แล้ว

    Désolé je n'ai rien dit. En vous ecrivant je me suis rendu compte d'une erreur orthographe: selet à la place de select.
    Merci vous êtes un génie

  • @francinemoore9497
    @francinemoore9497 6 ปีที่แล้ว

    Avez-vous un tuto qui expliquerait comment faire ... en passant vous faites d'excellents tuto bravo à toute votre équipe

    • @Learnaccess
      @Learnaccess  6 ปีที่แล้ว

      Expliquez moi ce que vous souhaitez faire exactement et je ferai un tuto sur le sujet.
      mon adresse email : jeanpaul.bonnetto@gmail.com

  • @romlef526
    @romlef526 8 ปีที่แล้ว

    c'est top ça ! merci beaucoup

  • @deborahouf5790
    @deborahouf5790 2 ปีที่แล้ว +1

    Bonjour, encore une superbe vidéo
    J'ai une demande : est il possible de transférer sur les 12onglets que certaine colonne de l'onglet source (exemple : colonne client, quantité,et mois bien sûr vu que c'est le champs commun pour le transfert)
    Y a t'il un code?
    Merci

  • @toureali4936
    @toureali4936 9 หลายเดือนก่อน

    Merci beaucoup...
    Je n'arrive pas à faire fonctionner ce code avec des tableaux structurés.
    Je sollicite votre aide.
    Cordialement

  • @jeanmarcrzycka209
    @jeanmarcrzycka209 6 ปีที่แล้ว

    bonjour et encore une fois merci pour un tuto non seulement intéressant mais également très utile.
    Je voudrais savoir si en entrant des données dans un userform on pourrait répartir les données non seulement dans différentes feuilles mais également dans les cellules de mon chois et pas seulement sous forme de tableau.
    Merci d'avance et vivement le prochain tuto.

    • @Learnaccess
      @Learnaccess  6 ปีที่แล้ว +1

      Bonjour
      C'est possible mais très compliqué à faire. Car il faudra dire à Excel dans quelle feuille et dans quelle cellule mettre ses données

    • @jeanmarcrzycka209
      @jeanmarcrzycka209 6 ปีที่แล้ว

      Learnaccess
      Bonjour et merci pour votre réponse
      Je vais réfléchir à une autre solution.
      Bonne soirée

  • @toureali4936
    @toureali4936 8 หลายเดือนก่อน

    Bonsoir prof. Finalement j'ai puis reglé mon premier problème que j'avais posé.
    j'ai encore un autre soucis
    si la source etait dns le classeur1 et les 12feuilles mois etaient dans un classeur2, comment on procedrait ??
    je suis vraiment coincé à ce niveau.

  • @hamzalamdak8348
    @hamzalamdak8348 4 ปีที่แล้ว

    thank youuuu

  • @alex12200
    @alex12200 ปีที่แล้ว

    bonjour, super video merci. Si je mets une valeur quelconque sur mes feuilles la macro fonctionne mais quand je rajoute une ligne sur la source et que je relance la macro j'ai le message d'erreur 1004 la méthode delete de la classe range a échoué. Pourquoi ?

    • @Learnaccess
      @Learnaccess  ปีที่แล้ว

      Retirer l’outil tableau et relancer le code

  • @hinethierry3212
    @hinethierry3212 2 ปีที่แล้ว

    bonjour j'ai vraiment aimer votre vidéo mes le problème es que quand j'ai fini de entre les formule les donner se son effacer je pensai que les donner allai se coller dans les feuilles je comprend par les donne se face sa ne fait copier coller dans les feuilles

  • @wuluba2011
    @wuluba2011 7 ปีที่แล้ว

    Bonjour
    Merci pour ce tuto très instructif comme toujours d'ailleurs.
    j'ai un débogage sur ce point : Cells(LastRow, 1).selet
    Comment faire? pour pour votre réponse

  • @hourialouarzazi8410
    @hourialouarzazi8410 8 ปีที่แล้ว

    Bonjour , je vous remercie énormément pour ce tuto ,j'essaie d'adapter ce code à mon projet , sauf que j'ai un problème c'est qu'on ne copie que les dernières données concernant chaque feuille non pas la totalité des lignes en question , et comme je suis débutante en VBA je sollicite votre aide

    • @Learnaccess
      @Learnaccess  8 ปีที่แล้ว +1

      JE pense que c'est juste votre plage de données qui n'est pas bonne.
      C'est pour cela que toutes les données ne sont pas présentent.
      Bien cordialement

  • @francinemoore9497
    @francinemoore9497 6 ปีที่แล้ว

    j'ai réussi vous devriez recevoir mon courriel d'ici quelques minutes

  • @genekelly86
    @genekelly86 7 ปีที่แล้ว

    bonjour, je vous remercie pour votre vidéo c'est ce que je cherchais, ventiler les données sur excel... vous avez donné un exemple pour ventiler les données d'une colonne (la 7e) dans les différents onglets, mais comment faire si nous voulons ventiler les donner de plusieurs colonnes ? j'ai un listing de noms qui pratique plusieurs activités et je voudrais ventiler toutes les activités dans le tableau spécifique à l'activité.

    • @Learnaccess
      @Learnaccess  7 ปีที่แล้ว

      C'est possible mais il faudra avant ventiler votre source par votre critère de filtre

    • @genekelly86
      @genekelly86 7 ปีที่แล้ว

      je n'ai pas compris votre conseil, si je souhaite ventiler des données de la colonne G H et I, je ne dois pas utiliser VBA comme pour la colonne G ? mais utiliser le filtre ? il ne faut pas donner des instructions à Excel pour ventiler aussi colonne H et I ? avez vous une vidéo pour ventiler plusieurs colonnes ?

  • @toufiktn5347
    @toufiktn5347 8 ปีที่แล้ว

    Bonjour Merci pour ce tuto si la colonne mois et forme numérique par exemple 21598001 et les sheets aussi numirique comment modifier les syntaxe vba.

  • @hilairenkousse432
    @hilairenkousse432 2 ปีที่แล้ว

    Bonjour et merci pour votre tuto assez explicite. je m'en suis inspiré mais seulement le constat est que quand j'execute le code pour il me meten janvier dans la collone mois pour les trois dernieres date Février et pour fevrier et mars dans la collone mois apres copie il me met janvier

    • @Learnaccess
      @Learnaccess  2 ปีที่แล้ว

      Ça dois marcher
      Vérifiez la syntaxe de votre code

    • @hilairenkousse432
      @hilairenkousse432 2 ปีที่แล้ว

      @@Learnaccess voici mon code. k de 2 a derniereligne car ma source commence par 2 apres l'entete
      Dim j As Integer
      Dim LastRow As Integer
      Dim DerniereLigne As Integer
      Sub Ventilation()
      Application.ScreenUpdating = False
      'Boucle permettant de lire les 12 feuilles de janvier a decembre

      For j = 1 To 12
      Sheets(j).Select
      LastRow = Range("A1000000").End(xlUp).Row
      For i = LastRow To 6 Step -1
      Sheets(j).Select
      Rows(i).Select
      Selection.Delete shift:=xlUp
      Next i
      Sheets("Données_recettes").Select
      DerniereLigne = Range("A1000000").End(xlUp).Row

      For k = 2 To DerniereLigne
      Sheets("Données_recettes").Select

      If Sheets(j).Name = Cells(k, 26).Value Then
      Rows(k).Select
      Selection.Copy

      Sheets(j).Select
      LastRow = Range("A1000000").End(xlUp).Row + 1
      Cells(LastRow, 1).Select
      ActiveSheet.Paste



      End If
      Next k
      Next j

      Sheets("Données_recettes").Select
      Application.CutCopyMode = False
      Application.ScreenUpdating = True

      End Sub

    • @Learnaccess
      @Learnaccess  2 ปีที่แล้ว

      Je ne vois pas d'erreur de syntaxe particuliere.
      Après difficile de trouver une erreur à partir d'une code.
      Avez vous faite un débeugage Pas à pas de votre code pour voir ou se situe le pb ???

    • @hilairedjoro1651
      @hilairedjoro1651 2 ปีที่แล้ว

      Non. puis je avoir un mail pour vous faire parvenir le fichier ?

  • @51cayon
    @51cayon 7 ปีที่แล้ว

    Bonjour,
    de mon coté tout fonctionne très bien mais j'aurai aimé, avec la même ventilation, ajouter une autre fonction.
    En gros en fonction des données de la colonne "C" envoyer et trier sur un autre tableau les données de la colonne "B"
    le résultat serai un tableau avec en entete produit 1 , 2 3 etc et en dessous de chaque produit avoir client 1 2 3 etc
    merci d avance

  • @hilairedjoro1651
    @hilairedjoro1651 2 ปีที่แล้ว

    Non. Puis je avoir un mail pour vous faire parvenir le fichier ?

  • @francinemoore9497
    @francinemoore9497 6 ปีที่แล้ว

    J'ai essayée de vous envoyer par courriel mais j'ai un message que votre adresse courriel n'est pas valide y aurais-tu une autre façon de vous le faire parvenir

    • @Learnaccess
      @Learnaccess  6 ปีที่แล้ว

      jeanpaul.bonnetto@gmail.com

  • @SuzonARNAUD
    @SuzonARNAUD ปีที่แล้ว

    Bonjour, merci pour votre vidéo c’est top! Une question parce que je rencontre des difficultés lors de la première étape ou il faut effacer le contenu des autre tableau.. Il faut savoir que j’ai 28 page et que moi à l’inverse de vous je veux qu’il ne me prenne que les pages de la numéro 3 à la 28 de plus mes tableaux commence à la colonne B. Lorsque je teste ma vba elle fait le travaille jusqu’à la page 14 et me marque « Erreur d’exécution ‘1004’ la méthode delete de classe range a échoué. Et me surligne ma ligne (Sélection.delete shift: =xlup) Pourriez me dire comment résoudre se problème ? :) Merci d’avance

    • @Learnaccess
      @Learnaccess  ปีที่แล้ว

      Faire une requête Power Query
      C’est plus simple que le VBA

    • @SuzonARNAUD
      @SuzonARNAUD ปีที่แล้ว

      Et voici mon écriture VBA :
      Dim j as integer
      Dim LastRow as integer
      Sub ventilation ()
      For j = 3 to 28
      Sheets(j).select
      LastRow = range (« B1000000 »).end(xlup).roi
      For i = LastRow to 14 step -1
      Sheets(j).select
      Row(i).select
      Sélection.delete shift:=xlup
      Next i
      Next j
      End sub

    • @SuzonARNAUD
      @SuzonARNAUD ปีที่แล้ว

      ​@@Learnaccess
      Merci je vais chercher une vidéo dans le même but avec ce que vous me dites alors :)
      Encore merci pour votre rapidité

  • @MIGMAGAG
    @MIGMAGAG 7 ปีที่แล้ว

    bonsoir
    comment faire si les noms des feuilles sont numériques ?? Merci

    • @Learnaccess
      @Learnaccess  7 ปีที่แล้ว

      Bonjour
      De la même façon que si elles étaient saisie par du texte.

    • @MIGMAGAG
      @MIGMAGAG 7 ปีที่แล้ว

      Bonjour
      justement ça ne marche pas..

    • @Learnaccess
      @Learnaccess  7 ปีที่แล้ว

      dans ce cas il ne faut utiliser leur nom mais l'index de la feuille (Feuil1, feuil2,...) au lieu de leur nom

    • @MIGMAGAG
      @MIGMAGAG 7 ปีที่แล้ว

      j'ai mis :
      For j = 1 To 12
      Sheets("feuil" & j).Select
      LastRow = Range("A1000000").End(xlUp).Row
      For i = LastRow To 7 Step -1
      Sheets("feuil" & j).Select
      Rows(i).Select
      'Selection.ClearContents
      Selection.Delete shift:=xlUp
      etc..
      il y a message d'erreur 09

    • @pabloalcapone5500
      @pabloalcapone5500 6 ปีที่แล้ว

      bonjour Learnaccess,
      tout d'abord je tiens à vous remercier pour vos cours très intéressant,
      je vais vous expliquer mon soucis en fait j'ai parfaitement exécuter votre code vba qui marche avec mon classeur sans problème sur excel mais le soucis c'est que pour des raisons pro je dois utiliser google sheets et etant nul en javascript je sais pas comment convertir ce code vba en script google sheets je te met mon code à traduire si tu peux m'aider car c'est très urgent merci d'avance
      code :
      Dim j As Integer
      Dim LastRow As Integer
      Dim DerniereLigne As Integer
      Sub ventilation()
      Application.ScreenUpdating = False

      'boucle permettant de lire toutes les feuilles du classeur
      For j = 2 To 12

      Sheets(j).Select
      LastRow = Range("A1000000").End(xlUp).Row
      For i = LastRow To 4 Step -1 'parcourir les lignes en remontant vers le haut
      Sheets(j).Select
      Rows(i).Select
      Selection.Delete shift:=xlUp
      Next i

      Sheets("source").Select
      DerniereLigne = Range("A1000000").End(xlUp).Row

      For k = 4 To DerniereLigne

      Sheets("source").Select

      If Sheets(j).Name = Cells(k, 13).Value Then

      Rows(k).Select
      Selection.Copy

      Sheets(j).Select
      LastRow = Range("A1000000").End(xlUp).Row + 1
      Cells(LastRow, 1).Select
      ActiveSheet.Paste

      End If

      Next k
      Next j
      Sheets("Staffplan").Select
      Application.CutCopyMode = False
      Application.ScreenUpdating = True
      MsgBox "la ventilation est terminée...", vbOKOnly + vbInformation, "Information"
      End Sub

  • @phihh6873
    @phihh6873 4 ปีที่แล้ว

    Bonjour,
    J'essaye de m'inspirer de votre vidéo car j'ai créé différents onglets Feuil1,LivretA, LivretB dans un classeur
    .
    Si la cellule C de ma dernière ligne en Feuil1 correspond au nom d'un des autres onglets, je souhaite copier cette ligne dans cet onglet.
    Dim j As Integer ' j correspond au numéro de mon onglet
    Dim LastRow As Long ' LastRow pour la recherche de la dernière ligne (que je souhaite recopier) du tableau de la feuille 1
    Dim DerLigne As Long ' DerLigne recherche de la dernière ligne (que je souhaite coller) du tableau de la feuille j

    Sub Ventilation()
    Worksheets("Feuil1").Select 'Je commence par sélectionner le tableau "principal" de l'onglet Feuil1
    LastRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row ' Je me place sur la dernière ligne de ce tableau
    For j = 1 To 3 ' j'ai 3 onglets dont la feuille 1
    If Sheets(j).Name = Sheets("Feuil1").Cells(LastRow, 3).Value Then ' Si la cellule en colonne C de la dernière ligne du tableau
    Rows(LastRow).Select ' Je sélectionne cette ligne
    Selection.Copy ' Je copie cette ligne
    Worksheets(j).Select ' j'ouvre l'onglet dont le nom est identique à la colonne C de la dernière ligne du tableau de la Feuil 1
    End If

    DerLigne = Cells(Rows.Count, 1).End(xlUp).Row ' Je souhaite me placer sur la dernière ligne du tableau de l'onglet j
    Selection.Paste ' Je souhaite copier cette ligne dans la dernière ligne du tableau de l'onglet j
    Next j
    End Sub
    Tout se passe bien jusqu'à la sélection de l'onglet (j) puis plus rien, si ce n'est un avertissement d'erreur.
    Pouvez vous m'aider ?
    Merci et bravo pour vos vidéos

    • @Learnaccess
      @Learnaccess  4 ปีที่แล้ว

      Je ne vois pas d'erreur particulière : essayer de remplacer l'instruction
      Worksheets(j).select par : Sheets(j).Activate

  • @francinemoore9497
    @francinemoore9497 6 ปีที่แล้ว

    comment ne copier certaines colonnes au lieu d'une ligne

    • @Learnaccess
      @Learnaccess  6 ปีที่แล้ว

      Bonjour
      Le même principe que les lignes, mais il faudra sélectionner les colonnes et les copier / coller

  • @francinemoore9497
    @francinemoore9497 6 ปีที่แล้ว

    Merci mais en vba comment l'écrire

    • @Learnaccess
      @Learnaccess  6 ปีที่แล้ว

      Pas simple et surtout et surtout il faut savoir comment recupérer quelles colonnes et les mettre ou

  • @romaingautheron8407
    @romaingautheron8407 4 ปีที่แล้ว

    Bonjour,,
    Je me suis fortement inspiré de votre vidéo et exemple pour tenter de reproduire. Malheuresement lorsque je lance mon code, j'obiens le message d'errue suivant "Erreur d'execution '1004': Erreur définie par l'application ou par l'objet.
    Voici mon code:
    Sub Ventilation()
    Dim j As Integer
    Dim LastRow As Integer
    Dim DerniereLigne As Integer

    For j = 36 To 90

    Sheets(j).Select
    LastRow = Range("A100000").End(xlUp).Row
    For i = LastRow To 2 Step -1
    Sheets(j).Select
    Rows(i).Select
    Selection.Delete shift:=xlUp
    Next i

    Sheets("Source").Select
    DerniereLigne = Range("A100000").End(xlUp).Row

    For k = 2 To DerniereLigne
    Sheets("Source").Select
    If Sheets(j).Name = Cells(k, 2).Value Then

    Rows(k).Select
    Selection.Copy
    Sheets(j).Select
    LastRow = Range("A100000").End(xlUp).Row + 1
    Cells(LastRow, 1).Select
    ActiveSheet.Paste

    End If
    Next k
    Next j
    End Sub
    Voyez vous quelque chose d'anormal?
    Merci et encore bravo pour vos vidéos.
    Romain

    • @Learnaccess
      @Learnaccess  4 ปีที่แล้ว

      Je ne vois pas d'erreur particulière.
      Il doit s'agir d'une erreur de pb de nom de feuilles ou autre.
      Vérifiez