Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 copie automatique vba d'une feuille a l autre

dilou

XLDnaute Nouveau
Bonjour

je souhaite crée un code vba pour une copie automatique des onglets villes par exemple à la feuille importation et chaque fois que je rajoute une ligne dans un des onglets il se copie automatiquement dans l onglet importation a la suite du reste. je suis novice et sa a pas l aire simple.

merci a ceux qui pourrons m aider.
 

Pièces jointes

  • Bibleonglet1.xlsx
    26.1 KB · Affichages: 8

dilou

XLDnaute Nouveau
merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
On ne touche pas à la feuille Importation puisqu'elle est effacée à chaque fois qu'on la sélectionne.
Sinon il faut changer de stratégie. mais ça devient plus compliqué si vous voulez rajouter des commenatires dans cette feuille.
Aujourd'hui elle est effacée et reconstruite. Sinon il faut repérer les lignes modifiées, les conserver .... ce n'est plus la même chose.
 

dilou

XLDnaute Nouveau
Merci de votre aide j ai réussi a garde ma ligne 2 de importation écrite comme je veux. par contre j ai une question mon onglet extraction ne veux plus faire ce pourquoi il a été crée et donc les recherche dans l'onglet importation
 

Pièces jointes

  • BIBLEVBAV3.xlsm
    752.9 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
J'ai un petit souci.
Quand je cherche Nom1, effectivement je ne trouve rien.
Par compte si je met des noms dans la 3émé colonne d'Importation, j'ai des résultats qui remontent.




Avez vous tenu compte des changement de colonnes entre la version sur laquelle j'ai travaillé et cette version :



De plus vous avez rajouté la colonne Ville à gauche.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Qui plus est, je viens de m'apercevoir que je ne remontai pas la Banque.
Vous faites : Banque = Sheets("Importation").Cells(ligne, 3).Value
et moi je commence en colonne 4. C'est ballot !
Si c'est le cas, ajoutez une ligne dans le module Consolidation :
VB:
    For ligne = 2 To IndexMax
    
        Worksheets("Importation").Cells(IndexStore, 3) = Worksheets(Sh.Name).Cells(ligne, 1) 'BANQUE
        
        Worksheets("Importation").Cells(IndexStore, 4) = Worksheets(Sh.Name).Cells(ligne, 2) 'LIBELLE OPERATION
        Worksheets("Importation").Cells(IndexStore, 5) = Worksheets(Sh.Name).Cells(ligne, 3) ' NOMSOUSAI
        Worksheets("Importation").Cells(IndexStore, 7) = Worksheets(Sh.Name).Cells(ligne, 4) 'CONTRAT
        Worksheets("Importation").Cells(IndexStore, 1) = Sh.Name 'NOM DE VILLE
        Worksheets("Importation").Cells(IndexStore, 8) = Worksheets(Sh.Name).Cells(ligne, 5) 'COMMENTAIRE
        IndexStore = IndexStore + 1
    Next ligne
 

dilou

XLDnaute Nouveau
merci de votre aide pour le temps passe pour faire le code tous fonctionne parfaitement maintenant.

vous aller penser que j abuse rien a voir avec le code de départ cette fois c'est pour le code de l onglet extraction quand je fais une recherche pour avoir un résultat il faut que je tape les mots exact, comme dans le tableau pour que sa ressorte sinon pas de résultat je souhaiterai que sa ressorte avec certain mot clé est ce que ces possible.
 

dilou

XLDnaute Nouveau
Bonsoir,
Essayer avec * généralement en recherche ça marche. Par ex Ess* peut vous remonter Essai1 Essai2 ...
Si ça marche on peut inclure l'étoile dans le code.
Bonsoir,
Essayer avec * généralement en recherche ça marche. Par ex Ess* peut vous remonter Essai1 Essai2 ...
Si ça marche on peut inclure l'étoile dans le code.
Bonjour,
J'ai pu faire les tests en réel aujourd'hui au boulot mais les dernières ligne de certains onglet ne s'affiche pas dans l onglet importation je souhaiterais mettre l étoile aussi dans le code car sa fonction pas sans.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dilou,
Le problème des lignes manquantes est résolu. En fait il manque une ligne quand la ligne2 est vide. Donnez moi le résultat.
Pour le filtre * ne marche pas car le filtre est fait à la main. Adressez vous à celui qui fait le code ( est ce vous ?) car je ne vois pas dans l'état comment résoudre le problème.
Question : Pourquoi ne pas utiliser de filtres directement dans la page Importation ? , ce serait plus simple et plus puissant .
 

Pièces jointes

  • Copie de BIBLEVBA4.xlsm
    712.6 KB · Affichages: 5

dilou

XLDnaute Nouveau
Merci vous pourriez m'expliquez la ligne que vous avez ajouter.le code pour l extraction je l ai trouvez https://www.bonbache.fr/moteur-de-recherche-vba-excel-insensible-aux-accents-286.html ici et modifier a ma sauce quand au filtre très bonne question mais les ordres vienne de plus haut.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je n'ai pas rajouter de ligne de code.
J'ai tenté le * dans le code mais ça ne marche pas avec le code tel qu'écrit.
Essayer j'ai tenté la manip suivante :
VB:
  Banque = Sheets("Importation").Cells(ligne, 3).Value & "*"
  Libelle = Sheets("Importation").Cells(ligne, 4).Value & "*"
  NomsousAI = Sheets("Importation").Cells(ligne, 5).Value & "*"
  ContratADREA = Sheets("Importation").Cells(ligne, 6).Value & "*"
  Commentaire = Sheets("Importation").Cells(ligne, 8).Value & "*"
Mas le résultat n'a pas été concluant. Faites l'essai peut être est ce moi qui n'ai pas compris comment ça marchait.
 

dilou

XLDnaute Nouveau
merci j essayerai demain au travail. mais si c'est possible je souhaite comprendre la ligne de code pour les ligne manquante de plus je souhaiterai le faire commence en ligne 3 dans importation et pas la ligne 2.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En fait dans la V3 je compatsi le nombre de lignes. Comme la ligne 2 était vide elle ne comptait pas.
Dans la V4 je cherche la dernière cellule occupée en partant de la fin. Donc même s'il y a des lignes vides cela n'interfère pas.
Cependant les lignes vides seront copiées.
VB:
V3
IndexMax = Application.WorksheetFunction.CountA(Worksheets(NomVille).Columns("B:B"))
V4
IndexMax = ThisWorkbook.Sheets(NomVille).Cells(65536, 2).End(xlUp).Row
Si vous voulez commencer à la ligne 3 pour l'importation il faut modifier l'index dans la boucle for :
Code:
    For ligne = 2 To IndexMax
        Worksheets("Importation").Cells(IndexStore, 1) = Worksheets(Sh.Name).Cells(ligne, 1) 'BANQUE
devient
    For ligne = 3 To IndexMax
        Worksheets("Importation").Cells(IndexStore, 1) = Worksheets(Sh.Name).Cells(ligne, 1) 'BANQUE
 

Discussions similaires

Réponses
5
Affichages
353
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…