Boucle complexe vba

Yohan05

XLDnaute Occasionnel
Bonjour,

En pièce jointe, vous trouverez le classeur avec la macro existante.

Mon problème est que je dois créer une boucle pour l'encodage des cellules suivantes.vous comprendrez avec le fichier...

Peut-être avec offset por créer la boucle mais seulement je ne sais pas ou la mettre afin d'optimiser la rapidité de la macro...

J'ai bien une solution mais beaucoup trop longue...

Attention : une précision importante est que toutes les lignes ne sont pas nécessairement remplies pour chaque validation (voir classeur)


Merci de votre aide
 

Pièces jointes

  • Tranches.zip
    21.2 KB · Affichages: 29
  • Tranches.zip
    21.2 KB · Affichages: 28
  • Tranches.zip
    21.2 KB · Affichages: 30

Robert

XLDnaute Barbatruc
Repose en paix
Re : Boucle complexe vba

Bonjour Yohan, bonjour le forum,

J'ai simplifié la macro mais je ne pense pas qu'elle soit plus efficace. En fait j'ai pas bien compris ton problème...
Code:
Sub Valdblocs()
Dim y As String, x As String
'dim t as ...
'dim f as ...
'dim g as ...
'dim z as ...
 
y = Sheets("Tranches").Range("C7").Value
x = Sheets("Tranches").Range("D7").Value
t = Sheets("Tranches").Range("E7").Value
f = Sheets("Tranches").Range("F7").Value
g = Sheets("Tranches").Range("G7").Value
 
Sheets("Tranches").Range("Z1").Value = DateValue(Sheets("Tranches").Range("A8").Value & " " & Sheets("Tranches").Range("B8").Value)
Z = Sheets("Tranches").Range("Z1").Value
MsgBox ("Les tranches sont rentrées dans le stock")
i = Range("B8").Value
Select Case i
    Case "Janvier"
    Workbooks.Open Filename:="H:\GESTION DE PRODUCTION\Analyse\Gestion des achats Tranhces.xls", UpdateLinks:=0
        Sheets(i).Select
    Case Else
    Workbooks.Open Filename:="H:\GESTION DE PRODUCTION\Analyse\Gestion des achats Tranhces.xls", UpdateLinks:=0
    Sheets(i).Select
    Range("a65536").End(xlUp).Offset(1, 0).Value = Z
    Range("b65536").End(xlUp).Offset(1, 0).Value = g
    Range("c65536").End(xlUp).Offset(1, 0).Value = y
    Range("e65536").End(xlUp).Offset(1, 0).Value = x
    Range("d65536").End(xlUp).Offset(1, 0).Value = t
    Range("f65536").End(xlUp).Offset(1, 0).Value = f
End Select
ActiveWorkbook.Save
ActiveWindow.Close
ThisWorkbook.Close savechanges:=False
Application.Quit
End Sub
 

Yohan05

XLDnaute Occasionnel
Re : Boucle complexe vba

Merci pour ton aide, je vais y travailler

En effet, le problème pour l'instant est que la macro fonctionne très bien pour la ligne 7 uniquement.

Alors que les lignes 9;11;13;...;21 doivent être recopiées si elles ne sont pas vides par le même procédé.

C'est où je ne sais vraiment pas comment m'y prendre par une boucle avec condition???

Merci pour votre aide ...
 

Bebere

XLDnaute Barbatruc
Re : Boucle complexe vba

bonjour Yohan

un essai pour une ligne
tu mets le curseur sur la ligne à enregistrer puis clic bouton
pour plusieurs lignes(une boucle est possible)mais se référer à quoi?
il faut que les feuilles mois existent,si elles n'existent pas on peut les créer

Sub Valdblocs()
Dim NomFeuil As String, L As Long, Li As Long, MaDate As Date

Li = ActiveCell.Row
Set rng = Range("C" & Li & ":G" & Li)
MaDate = DateValue(Range("A" & Li).Value & " " & Range("B" & Li).Value)
NomFeuil = Range("B" & Li).Value
Workbooks.Open Filename:="E:\forummars2010\classeur1" '"H:\GESTION DE PRODUCTION\Analyse\Gestion des achats Tranhces.xls", UpdateLinks:=0
With ActiveWorkbook.Sheets(NomFeuil)
L = .Range("b65536").End(xlUp).Row + 1
.Range("A" & L).Value = MaDate
rng.Copy Destination:=.Range("B" & L)
End With
ActiveWorkbook.Save
ActiveWindow.Close

MsgBox ("Les tranches sont rentrées dans le stock")


'ThisWorkbook.Close savechanges:=False
'Application.Quit

End Sub

à bientôt
 

Yohan05

XLDnaute Occasionnel
Re : Boucle complexe vba

Bonjour bebere,

Le feuilles mois existent bien, j'ai rajouté le fichier par souci de KO, j'ai laisser uniquement la feuille janvier.

La boucle devrait se faire à la condition que la cellule C9 ne soit pas vide et ainsi de suite jusque C21.

Merci beaucoup de ton aide...
 

Pièces jointes

  • Tranches.zip
    21.2 KB · Affichages: 21
  • Tranches.zip
    21.2 KB · Affichages: 17
  • Tranches.zip
    21.2 KB · Affichages: 18
  • Gestion des achats Tranches.zip
    36.6 KB · Affichages: 23

Yohan05

XLDnaute Occasionnel
Re : Boucle complexe vba

Merci beaucoup Robert cela fonctionne très bien...

Au niveau de des cellules F7 et G7, peut-on les recopier dans chaque ligne du classeur "Gestion..." bien entendu à chaque validation.
Pour les cellules peut-on les recopier sans la liste de choix qui les accompagnent?

Désolé de ne pas avoir précisé ces détails tout de suite et merci pour l'aide...
 

Discussions similaires

Réponses
6
Affichages
215

Statistiques des forums

Discussions
312 856
Messages
2 092 858
Membres
105 544
dernier inscrit
Eden90