Incrémenter de manière mensuelle un tableau en fonction d'autres tabelaux Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
Dobbybug
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 13 septembre 2019
Version d'Excel : 2010

Message par Dobbybug » 23 septembre 2019, 10:47

Bonjour à tous :) ,

Je me tourne vers vous car je n'arrive pas à écrire un code sur VBA. Voici le problème :

J'ai deux différents "catalogue de produit" sur deux différentes feuilles et j'ai une troisième feuille qui fait la synthèse des deux premiers catalogues. Mon but c'est de créer une macro qui permet à l'utilisateur que, quand il appuie sur un bouton, le tableau synthèse récupère le prix des différents produits. Jusque là j'ai vu qu'il y a déjà des réponses sur différents forum mais, dans mon cas, j'ai plusieurs contraintes :

_ Les deux catalogues sont affichés en ligne et non en colonne contrairement au tableau "synthèse"
_ Dès qu'il y la mention de "PRIX MANQUANT" alors affiché "\"
_ Il faut vraiment que le mois soit pris en compte et non pas que "bêtement" à chaque appui du bouton la macro décale d'une colonne. Par exemple si par inadvertance l'utilisateur appuie deux fois sur le bouton au mois de septembre, dans ce cas il ne faut pas que ça me génère une nouvelle colonne ou que ça remplisse la colonne d'après.
_ Enfin, les deux feuilles "catalogue" ne sont pas figées dans le temps et sont incrémentées de nouveaux produits (dans les deux cas l'insertion du nouveau produit se fait sur la colonne J) et du coup je voudrais que lorsqu'il détecte l'apparition de nouveaux produits qu'il me l'ajoute à la suite et toujours en prenant en compte le mois ;)

Je sais que ça fait beaucoup de contraintes et d'habitude j'essaie de me débrouiller seule surtout que je commence à être de plus en plus à l'aise avec VBA mais je pense qu'il faut connaître ses capacités et clairement les miennes ne sont pas suffisantes pour ce cas présent.

J'ai joint le fichier où est encadré en rouge le prix que je souhaite récupérer et je pense que ça éclaircira certains points,

En esperant avoir été claire sinon ne pas hésiter à me demander des précisions

Et surtout je remercie ceux qui essaieront :mrgreen:
FichierExemple.xlsx
(15.93 Kio) Téléchargé 10 fois
D
Dobbybug
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 13 septembre 2019
Version d'Excel : 2010

Message par Dobbybug » 25 septembre 2019, 11:42

Petite MAJ, ::D

J'ai essayé de coder la partie pour récupérer les prix mais ça ne fonctionne pas et je pense que ce n'est qu'une histoire de syntaxe

voici le code :
Sub MAJHisto()

Dim Lastline, LastCol As Integer
Set wsh1 = Worksheets("Histo")
Set wsh2 = Worksheets("Catalogue 1")


'Va jusqu'à la dernière ligne

Lastline = Sheets("Histo").Range("B" & Rows.Count).End(xlUp).Row

'Va jusqu'à la dernière colonne

LastCol = Sheets("Catalogue 1").Cells(4, Columns.Count).End(xlToLeft).Column

For i = 1 To Lastline
    For j = 1 To LastCol
        Set c = wsh1.Columns("B").Find(wsh2.Cells("4", j).Value, LookIn:=xlValues, Lookat:=xlWhole)
    If Not c Is Nothing Then
        If wsh2.Range(c.Address).Offset(3, 0) <> "" Then
            wsh1.Cells(i, "B").Value = wsh2.Range(c.Adress).Offset(3, 0)
        End If
    End If
Next j
Next i
Set wsh1 = Nothing
Set wsh2 = Nothing
Set c = Nothing

End Sub 
Et il beug à cette ligne :| :
wsh1.Cells(i, "B").Value = wsh2.Range(c.Adress).Offset(3, 0)
Si quelqu'un arrive à voir l'erreur se serait le top :mrgreen:
D
Dobbybug
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 13 septembre 2019
Version d'Excel : 2010

Message par Dobbybug » 10 octobre 2019, 09:27

Bonjour à tous,

J'ai finalement réussis à trouver une parade en créant une feuille cachée où j'y insère les données en lignes de manière à les mettre en colonne ce qui fait que je n'ai plus le problème de la manipulation des lignes ::D

Bonne journée à tous ;;)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message