VBA - Récup. les données de plages et de cellules, et classer dans une autre feuille

Dams7160

XLDnaute Nouveau
Bonsoir à tous,

Voici mon problème, j' ai une feuille ou se trouve des données que je souhaite enregistrer ligne par ligne dans une autre feuille.

Petite image pour illustrer : (Le fichier sera joint biensur)
Sans-titre-1.jpg

Chaque enregistrement doit contenir C4 et F4, mais une ligne par produit.

Comment puis-je, lors d'un clic sur une image récuperer les donnée de la plage D7:D37 en prenant compte du nombre d'enregistrement ?

Cellule par cellule je n'ai pas de problème mais pour une plage, je ne sais pas comment faire ....
 

Pièces jointes

  • Sans-titre-1.jpg
    Sans-titre-1.jpg
    43.5 KB · Affichages: 234
  • Sans-titre-1.jpg
    Sans-titre-1.jpg
    43.5 KB · Affichages: 229
  • Gestion.xlsm
    41.4 KB · Affichages: 108
  • Gestion.xlsm
    41.4 KB · Affichages: 100
  • Gestion.xlsm
    41.4 KB · Affichages: 99

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Bonjour Dams,
Essaie cette macro
Attention j'utilise le codename des onglets.
Bruno
Code:
Sub encode()
With Feuil26
For k = 7 To [D6].End(4).Row
li = .[D65536].End(3).Row
lig = Application.Match(Cells(k, 4), .Range("C1:C" & li), 0)
If IsNumeric(lig) Then
.Cells(lig, 4) = .Cells(lig, 4) + Feuil24.Cells(k, 6)
Else
.Cells(li + 1, 3) = Feuil24.Cells(k, 4)
.Cells(li + 1, 4) = Feuil24.Cells(k, 6)
End If
Next
.Select
End With
End Sub
 

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Bonjour,

J'ai chercher pendant ma nuit,et voilà ce que j' ai fait ...µ
(autre fichier)
Est-ce correct ?!
quel modification dois-je faire ?

Sub encoder_donnée()
'
' encoder_donnée Macro
'
Dim MaDerLigneTab As Variant
MaDerLigneTab = Range("D37").End(xlUp).Offset(1, 0).Address
MaDerLigneTab = Range(MaDerLigneTab).Row - 1

For Each var_Rge In Range("D7:D" & MaDerLigneTab)
PROD = var_Rge.Value
LIGNEPROD = var_Rge.Row
QT = Range("F" & LIGNEPROD)
CONS = Range("C4")
SEM = Range("F4")
With Sheets(2)
MaLigne = Sheets(2).Range("C65536").End(xlUp).Offset(1, 0).Address
MaLigne = Sheets(2).Range(MaLigne).Row
Sheets(2).Range("A" & MaLigne) = CONS
Sheets(2).Range("B" & MaLigne) = SEM
Sheets(2).Range("C" & MaLigne) = PROD
Sheets(2).Range("D" & MaLigne) = QT
Sheets(2).Range("E" & MaLigne) = "OUT"
End With

Next var_Rge

Range("D7:D37").ClearContents
Range("F7:F37").ClearContents

MsgBox "Consomations enregistrées"

End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Re:
Ta macro ne recherche pas si un produit est dèja présent dans la feuille pour simplement ajouter la Qté
A éviter car grosse source d'erreur Sheets(2) numération car si on déplace l'onglet tout bug utilise plutot le codename
Même en déplacant ou renommant l'onglet c'est bon.
Voici un nouveau code j'avais oublié Conso & Date & effacement
Bruno
Code:
Sub encode()
With Feuil26
For k = 7 To [D6].End(4).Row
li = .[D65536].End(3).Row
lig = Application.Match(Cells(k, 4), .Range("C1:C" & li), 0)
If IsNumeric(lig) Then
.Cells(lig, 4) = .Cells(lig, 4) + Feuil24.Cells(k, 6)
Else
.Cells(li + 1, 1) = [D4]
.Cells(li + 1, 2) = [F4]
.Cells(li + 1, 3) = Feuil24.Cells(k, 4)
.Cells(li + 1, 4) = Feuil24.Cells(k, 6)
End If
Next
Range("D7:D37").ClearContents
Range("F7:F37").ClearContents
MsgBox "Consomations enregistrées"
End With
End Sub
 

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Ta macro ne recherche pas si un produit est déjà présent dans la feuille pour simplement ajouter la Qté

Sur quelle feuille ?
Chaque consommation correspond a une date et un consommateur, j' ajouterai simplement la qté si seulement il y a déjà une consommation à la même date et même consommateur...
 

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Voici de nouveau le fichier
J'ai fait comme je comprends et mis qlqs explications en macro.
Bruno
 

Pièces jointes

  • Gestion.xls
    100.5 KB · Affichages: 96
  • Gestion.xls
    100.5 KB · Affichages: 86
  • Gestion.xls
    100.5 KB · Affichages: 81

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Voila, j' ai intégré le code a mon fichier...

Seulement me voila découragé, je ne sais pas comment faire pour pas qu'il soit si lent....

Est ce possible que ce soit a cause de trop de sommeprod ?
 

Pièces jointes

  • Gestion.xlsm
    190.7 KB · Affichages: 65
  • Gestion.xlsm
    190.7 KB · Affichages: 70
  • Gestion.xlsm
    190.7 KB · Affichages: 67

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Je viens de rectifier un chouillat les macros.
J'ai enlevé les fusions de cellules qui servent à rien et perturbes.
En effet il y a beaucoup trop de sommepro , dans ce fichier j'ai supprimé les formules pour tester la macro.
Sur ton dernier fichier si j'écris directement dans une cellule en Feuil2 il mets bien du temps pour valider.
J'ai aussi annulé en debut de macro la calculation et là remets en fin de macro et là ça plante grave!!!
Je ne me suis pas penché sur tes formules mais il va falloir trouver une autre façon de faire.
Je regarderai demain pour les formules
Bruno
 

Pièces jointes

  • Gestion2.xlsm
    172.9 KB · Affichages: 108

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Re-bonjour....

Comment faire :s, sans sommeprod je sais pas trop vers quoi me diriger ....
Quelqu'un a une idée ?

Le concept du tableur est le suivant.
Je suis responsable de la gestion d'un magasin (pour des équipes d'ouvrier).
Dans ce tableur je dois retrouver plusieurs info :
-La consommation des équipes semaine après semaine minimum
-Le stock réelle
-Les livraisons reçue

Comment puis je construire ce tableur autrement, avec formulaire pour les entrées de données
 

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

Salut Dams,
Sur ton fichier j'ai enlevé les formules sommeprod et les macros se chargent du reste.
J'y ai consacré plus de temps que prévu...et fait qlq correctifs
Bon test
Bruno
 

Pièces jointes

  • Gestion3.xlsm
    185.3 KB · Affichages: 150
  • Gestion3.xlsm
    185.3 KB · Affichages: 166
  • Gestion3.xlsm
    185.3 KB · Affichages: 172

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

MMmmm...

C'est propre et rapide :D

Le problème c'est que je ne sais pas voir les consommations mois par mois, c'est un cumul. c'est bien ça ?

En tout cas merci pour le temps consacré ! Ça c'est clair !
 

Dams7160

XLDnaute Nouveau
Re : VBA - Récup. les données de plages et de cellules, et classer dans une autre feu

je bosse sur le sujet en ce moment justement ^^, avec outlook qui m'informe de tes faits et gestes :p

Via les sommeprod je récupérais les dates en haut a gauche (Feuil3)...
qui me permettait de voir période par période :s

pour la Feuil4, pareil si je fais un inventaire et que je remet les stocks à jour, j'aurais des problèmes quand je vais encoder des consomations de la veille de l'inventaire par exemple.
via la date en haut de page je ne selectionnais que les sorties apres l'inventaire.

:p oufty ^^ tu me suis toujours ?!
 

Discussions similaires