Aide vba pour recherche lignes et feuille + copie sur autre fichier

chtite24

XLDnaute Nouveau
Bonjour,

Je suis totalement perdue, voila 2 jours que je cherche sans trouver et le temps me vient à manquer. Je viens donc demander de l'aide!!

Voici mon problème :
J'ai 2 fichiers : 1 qui regroupe les tarifs et 1 qui regroupe les quantités
Le tout étant catalogué via des références.

J'aimerai que, lorsque je clic sur le bouton "Mise A Jour" de la feuille tarif (lorsque je viens de mettre a jour la grille de tarif), il se passe les choses suivantes :

- Ouverture du fichier "Quantité"
- Recherche ligne par ligne des références de la première feuille
- > copie du tarif du fichier "Tarif" dans la cellule en face de la référence correspondante du fichier "Quantité"
- > Si le tarif n'es pas rentré, (par exemple dans mon fichier tarif pour la référence 58910) il m'affiche une boite de dialogue avec "Tarif non rentré, veuillez entrer le prix de la référence 58910" et que ça écrive le prix rentré manuellement dans la fichier "Tarif" et dans le fichier "Quantité" en face de la référence qui correspond

- Idem pour les autres feuilles sauf que quand ce sont des couleurs, il faut aller chercher le tarif dans la page qui porte le mm nom...

Je sais pas si c'est bien clair....

En espérant que vous pourrez m'aider ou au moins m'aiguiller sur la méthode à suivre.

Merci d'avance !
 

Pièces jointes

  • Chtite24_Quantité.xlsx
    11.7 KB · Affichages: 31
  • Chtite24_Quantité.xlsx
    11.7 KB · Affichages: 38
  • Chtite24_Quantité.xlsx
    11.7 KB · Affichages: 38
  • Chtite24_Tarif.xlsm
    18.6 KB · Affichages: 45
  • Chtite24_Tarif.xlsm
    18.6 KB · Affichages: 42
  • Chtite24_Tarif.xlsm
    18.6 KB · Affichages: 44

adel53

XLDnaute Occasionnel
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Bonjour

Je te propose une solution en utilisant la recherchev uniquement sans passer par du VBA je pense que ça répond à ton besoin. Il suffit que tu décompresses le fichier joint dans C:\

Cordialement

Adel MAHHOU
 

Pièces jointes

  • Classeur_chtite24.zip
    27.2 KB · Affichages: 26
Dernière édition:

chtite24

XLDnaute Nouveau
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Ben l'idée de départ est un peu la mm sauf que j'aimerai bien que ça se fasse automatiquement quand je clique un bouton.
De plus, si je rajoute une feuille de couleur, je veux pas avoir à retaper la formule dans toutes les cellules et puis juste avec RECHERCHEV pas moyen de vérifier que le tarif d'une référence est bien entré et le rentrer manuellement...

Merci tout de mm de ta réponse ;)
 

KenDev

XLDnaute Impliqué
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Bonsoir Chtite24, Adel 53,

Tes classeurs en retour selon ce que j'ai compris.

Une erreur : sur la feuille Tarif il y avait des références en doubles (je suppose qu'il s'agissait juste d'une erreur propre à ce fichier exemple) que j'ai retiré.

Une maladresse : Les tableaux des feuilles Couleur du classeur Tarif ont la colonne Tarif/unité en colonne 3 et tous les autres en colonne 4. J'ai donc inséré une colonne vide dans ces feuilles pour faciliter le travail.

Impératif pour le bon fonctionnement :
_ Tous les tableaux doivent commencer à la même ligne (comme actuellement). En cas de modification adapter simplement "Const Ln As Long = 4"
_ Tous les tableaux doivent avoir le meme numéro de colonne pour la colonne Tarif/Unité. En cas de modification adapter simplement "Const Co As Long = 4"

Voir en tête de module les autres paramètres à adapter au cas réel (notamment le chemin vers le classeur à ouvrir).

Il est supposé que toutes les feuilles du classeur 2 seront des feuilles tableaux (?).

La Sub met à jour le 2ème classeur d'après le premier.

Cordialement

KD

Edit : Un détail à savoir : pour décider d'aller voir dans les feuilles tarifs Couleur, la Sub ne se base pas sur le fait qu'il soit écrit couleur en feuille Tarif pour la référence concernée mais sur le fait que la feuille couleur concernée existe dans les deux classeurs.
En conséquence, dans la feuille Tarif, les lignes de références couleur peuvent être supprimées.
 

Pièces jointes

  • Chtite24_Quantité.xlsx
    11.9 KB · Affichages: 35
  • Chtite24_Quantité.xlsx
    11.9 KB · Affichages: 38
  • Chtite24_Quantité.xlsx
    11.9 KB · Affichages: 38
  • chtite24_tarif.xlsm
    27 KB · Affichages: 47
  • chtite24_tarif.xlsm
    27 KB · Affichages: 44
  • chtite24_tarif.xlsm
    27 KB · Affichages: 41
Dernière édition:

chtite24

XLDnaute Nouveau
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

C'est exactement ça !!
Sauf qu'en plus tu as rajouté des choses auxquelles je n'aurai pas pensé (car je ne savais mm pas qu'on pouvais le faire...)
Je te remercie beaucoup, tu me "sauve la vie" !!
 

chtite24

XLDnaute Nouveau
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Petit problème pour adapter le code à mon cas précis : sur le classeur "Quantité" j'ai une premiere feuille qui n'a rien à voir avec les autres, sur laquelle j'inscrit les différentes modifs.
Comment faire pour que le code "saute" cette feuille (qui ne contient donc aucune référence ni aucun tarif) lors de la mise à jour? Que dois-je modifier?
 

chtite24

XLDnaute Nouveau
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Sur mon fichier exemple, aucun problème, mais sur mon vrai fichier le débogueur se lance dès que je clique sur mon bouton Mise A Jour et me dit : Erreur d'exécution 1004 Erreur définie par l'applicationou par l'objet
Et il me surligne la ligne dans la Private Sub Maj_Tarif_2()
Rw(i) = Ws(i).Cells(Rows.Count, 1).End(xlUp).Row

Quel est le role de cette ligne et à quoi peut etre due l'erreur?
 

KenDev

XLDnaute Impliqué
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Bonjour Chtite24, le fil,

Pour sauter la feuille :
-Ajout d'une constante en début de code, représentant le nom de la feuille 'interdite' à adapter (Const SnI As String = "Modif")
- Ajout d'une condition dans le cas 'Else' de la première boucle (If Wb(2).Worksheets(i).Name <> SnI Then ..... End If)

La Ligne 'Rw(i) = Ws(i).Cells(Rows.Count, 1).End(xlUp).Row' détermine pour la feuille Ws(i) colonne 1, la ligne de la dernière cellule non vide. A priori cette ligne ne devrait pas planter. Le code 1004 étant un peu un code fourre-tout je n'ai pas trop d'idée là, peux tu renvoyer deux fichiers exemples qui reproduisent l'erreur ? Il y a visiblement une particularité à prendre en compte dans le fichier réel.

C'est quoi les trucs que j'ai rajouté ?? :confused:

Ci joint les classeurs avec le code commenté.

Cordialement

KD
 

Pièces jointes

  • Chtite24_Quantité.xlsx
    12.5 KB · Affichages: 33
  • Chtite24_Quantité.xlsx
    12.5 KB · Affichages: 34
  • Chtite24_Quantité.xlsx
    12.5 KB · Affichages: 34
  • chtite24_tarif.xlsm
    28.9 KB · Affichages: 41
  • chtite24_tarif.xlsm
    28.9 KB · Affichages: 42
  • chtite24_tarif.xlsm
    28.9 KB · Affichages: 43

chtite24

XLDnaute Nouveau
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Bonjour,

Dsl pour le retard de réponse...

Alors afin d'avoir deux fichiers les plus représentatifs de mon cas réel, j'ai simplement copié mes deux fichiers et supprimés les éléments non nécessaires....
L'erreur est toujours là.. à la mm ligne...

En espérant que vous pourrez m'aider.

Cordialement,

Chtite24
 

Pièces jointes

  • Chtite24_Bibliotheque_Tarifs.xls
    115.5 KB · Affichages: 28
  • chtite24_inventaire.xlsm
    70.4 KB · Affichages: 39

KenDev

XLDnaute Impliqué
Re : Aide vba pour recherche lignes et feuille + copie sur autre fichier

Bonsoir Chtite24,

Je suppose que le souci à la ligne
Code:
Ws(i).Cells(Rows.Count, 1).End(xlUp).Row
vient du fait de travailler avec Excel2007 (pour qui Rows.Count = 1048576) sur un fichier compatible 2003 (nombre de lignes d'une feuille = 65536).

Je te proposes donc de modifier comme suit :
Code:
Rw(i) = Ws(i).Cells(65536, 1).End(xlUp).Row

Je prévois un autre souci à venir (ton premier jeu de fichiers exemples ne pouvaient le laisser deviner)... A suivre. Cordialement

KD
 

Discussions similaires

Statistiques des forums

Discussions
312 234
Messages
2 086 475
Membres
103 226
dernier inscrit
smail12