Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1731 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] programmer une macro vb pour excel... merci babasss

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] programmer une macro vb pour excel... merci babasss

n°1690536
maxfrancky
Posté le 22-02-2008 à 11:15:20  profilanswer
 

Alors voila, je possede ces 2 feuilles cijoints
 
fichier-cijoint.xls
 
dans la 1ère, je dispose d'un code article et de stocks suivant 3 critères.
la partie que je dois programmer est ce qui va passer en 2nde page :
 
- il me faut le code article en 1ère colonne
 
- le stock en 2ème et !!!
 
- en 3ème colonne :
                          - la valeur 1 si le stock était en J-8                      
                          - la valeur 2 si le stock était en J+8  
                          - la valeur 3 si le stock était en J+21  
 
mon problème vient quand j'ai des stocks pour le même article dans plusieurs critères. Pour cela, il me faudrait alors ajouter une ligne avec le même code article et la valeur correspondant au critère suivant dans lequel le stock se trouve...
 
je ne sais pas si tout est clair, mon fichier cijoint pourra peut etre vous aider a comprendre...

Message cité 1 fois
Message édité par maxfrancky le 05-03-2008 à 13:21:28
mood
Publicité
Posté le 22-02-2008 à 11:15:20  profilanswer
 

n°1692570
maxfrancky
Posté le 26-02-2008 à 09:04:12  profilanswer
 

personne n'a rien trouvé ? :(

n°1692584
babasss
Posté le 26-02-2008 à 09:33:32  profilanswer
 

maxfrancky a écrit :

je ne sais pas si tout est clair, mon fichier cijoint pourra peut etre vous aider a comprendre...


Pas vraiment, pourrais-tu donner un exemple de ce que tu attends...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1693592
maxfrancky
Posté le 27-02-2008 à 14:32:20  profilanswer
 

babasss a écrit :


Pas vraiment, pourrais-tu donner un exemple de ce que tu attends...


 
si sur ma page impression j'ai ça
 
CODE ARTICLE        J -8      J +8     J  +21
021158                120  
010927                                               40
020921                                64           20    
000708                                               46
 
sur ma page envoi je v devoir avoir :
 
n° article nombre de colis      âge
021158           120               1
010927            40                3
020921             64               1
020921             20               2
000708             46                3
....


Message édité par maxfrancky le 27-02-2008 à 14:34:14
n°1693639
babasss
Posté le 27-02-2008 à 15:06:00  profilanswer
 

En code synthétique, tu peux faire :
While NOT end of line
  For colonne_selectionné = 1 to 3
    If cells(ligne_selectionné,colonne_selectionné+1) <> 0 // +1 par ce que la 1° colonne est la B
      Then  
         cells(ligne_arrivé,colonneA) = cells(ligne_selectionné, 1)
         cells(ligne_arrivé,colonneB) = cells(ligne_selectionné, colonne_selectionné)
         cells(ligne_arrivé,colonneC) = colonne_selectionné
         ligne_selectionné = ligne_selectionné + 1
    Next
Wend


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1696981
maxfrancky
Posté le 04-03-2008 à 14:20:57  profilanswer
 

Citation :

 
While NOT end of line
   For colonne_selectionné = 1 To 3
    If Cells(ligne_selectionné, colonne_selectionné + 1) <> 0 Then '  +1 par ce que la 1° colonne est la B
         Cells(ligne_arrivé, colonneA) = Cells(ligne_selectionné, 1)
         Cells(ligne_arrivé, colonneB) = Cells(ligne_selectionné, colonne_selectionné)
         Cells(ligne_arrivé, colonneC) = colonne_selectionné
         ligne_selectionné = ligne_selectionné + 1
    End If
   Next
Wend


 
il comprend pas le end of line :s

n°1697094
babasss
Posté le 04-03-2008 à 16:47:07  profilanswer
 

Euh, j'ai marqué :

babasss a écrit :

En code synthétique, tu peux faire :


Ca veut dire que ce n'est pas formalisé, c'est une piste de réflexion sous une forme de pseudo langage, à toi de trouver les expressions qui conviennent à chaque fois pour que le code fonctionne....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1697424
maxfrancky
Posté le 05-03-2008 à 10:59:00  profilanswer
 

j'avais bien compris, d'ailleurs l'idée m'a bien aidé,  
 
Dim ligne_selectionné, ligne_arrivé, line As Integer
 
ligne_arrivé = 2
 
For ligne_selectionné = 2 To 200
 
    For colonne_selectionné = 1 To 3
   
        If Cells(ligne_selectionné, colonne_selectionné + 1) <> 0 Then
         Cells(ligne_arrivé, colonneA) = Cells(ligne_selectionné, 1)
         Cells(ligne_arrivé, colonneB) = Cells(ligne_selectionné, colonne_selectionné)
         Cells(ligne_arrivé, colonneC) = colonne_selectionné  
         ligne_selectionné = ligne_selectionné + 1
         ligne_arrivé = ligne_arrivé + 1
        End If
    Next
Next
 
 
 
j'ai essayé un truc du genre, mais j'ai une erreur d'execution 1004
erreur defini par l'application ou l'objet
et je sais pas trop d'ou cela vient, si vous avez une idée :s


Message édité par maxfrancky le 05-03-2008 à 11:00:20
n°1697493
maxfrancky
Posté le 05-03-2008 à 12:24:13  profilanswer
 

c'est bon, tout en ayant modifier mes autres pages, j'ai trouvé un code fonctionnel tres inspiré du tien...
je te remerci
 
 
Dim ligne_selectionné, ligne_arrivé, line As Integer
 
ligne_arrivé = 1
 
For ligne_selectionné = 2 To 200 Step 1
 
    For colonne_selectionné = 1 To 3
   
ligne_arrivé = ligne_arrivé + 1
 
        If Worksheets("saisie" ).Cells(ligne_selectionné, colonne_selectionné + 8) <> 0 Then '  +1 par ce que la 1° colonne est la B
         Worksheets("envoi" ).Cells(ligne_arrivé, 1) = Worksheets("saisie" ).Cells(ligne_selectionné, 5)
         Worksheets("envoi" ).Cells(ligne_arrivé, 2) = Worksheets("saisie" ).Cells(ligne_selectionné, colonne_selectionné + 8)
         Worksheets("envoi" ).Cells(ligne_arrivé, 3) = colonne_selectionné + 1
        End If
         
 
    Next
Next
 
mon nouveau problème va etre d'effacer toutes les lignes vides :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] programmer une macro vb pour excel... merci babasss

 

Sujets relatifs
Variables spéciales C/C++ [RESOLU]programmer un pilote clavier
[VB/VBA/VBS] Excel vba et Windows 64 bit: problème de shell ?[Résolu de par moi-même][PHP] Récupérer l'url d'une image uploadée
[résolu] Petit problème de Thread[Résolu ]Opérateur de comparaison en python
[Résolu]Sélectionner mes zones de texte avec VBA pour excelCookie ne se crée pas [RESOLU grâce à NazzTazz. MERCI !]
Plus de sujets relatifs à : [Résolu] programmer une macro vb pour excel... merci babasss


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR