[VBA] Code destiner pour acces / pour Excel

Code destiner pour acces / pour Excel [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 30-10-2006 à 13:55:25    

Bonjour à tous,
 
j'aimerai avoir le code ci-dessous prévu pour une base access mais pour Excel.
 
 
Ce code permet de remplir un champ dans une table.
j'aimerai faire la meme chose avec les boites de dialogues et tout, mais que les résultats s'inscivent dans un fichier Excel.
 

Code :
  1. Option Compare Database
  2. Option Explicit
  3. Function suivant(nb As Long) As Long
  4.     Dim tempo As Long
  5.     tempo = nb + 11
  6.         If Right(tempo, 1) = "7" Then tempo = tempo - 7
  7.     suivant = tempo
  8. End Function
  9. Sub calcul_LTA()
  10. Dim mabase As DAO.Database
  11. Dim matable As DAO.Recordset
  12. Dim debut As Long
  13. Dim nb_suite As Long
  14. Dim Ref_CA As Long
  15. Dim boucle As Long
  16. Set mabase = CurrentDb()
  17. Set matable = mabase.OpenRecordset("Table1" )
  18. SAISIE:
  19. debut = CLng(InputBox("début de la suite ??" ))
  20. If Right(debut, 1) > 6 Then
  21. MsgBox ("N° LTA érroné !" )
  22. GoTo SAISIE:
  23. End If
  24. debut = debut - 11
  25. nb_suite = CLng(InputBox("Nombre de LTA disponible ??" ))
  26. Ref_CA = CLng(InputBox("Reférence Compagnie ( 3 chiffres )" ))
  27. For boucle = 1 To nb_suite
  28. debut = suivant(debut)
  29. matable.AddNew
  30. matable("LTA" ) = debut
  31. matable("Ref_CA" ) = Ref_CA
  32. matable.Update
  33. Next boucle
  34. Set mabase = Nothing
  35. End Sub


 
je ne suis pas toujour perspicasse dans mes explications, donc si vous désiré plus d'information/préssision n'hésité pas.
 
Cordialement,
Zorh.


Message édité par Zorh le 30-10-2006 à 15:06:01
Reply

Marsh Posté le 30-10-2006 à 13:55:25   

Reply

Marsh Posté le 30-10-2006 à 14:00:58    

Impossible directement, vu que c'est justement prévu pour de l'access, ça ne se gère pas pareil sous Excel... Faut y faire quelques modifs pour inscrire les infos dans des cellules au lieu d'un recordset

Reply

Marsh Posté le 30-10-2006 à 15:05:33    

euhh ... vi certainement :S :
 
je présise je suis le projet d'un collègue en congès maternité et je ne connai pas le VBA.
 
si tu pouvai me traduire sa pour Excel se serai super de ta part ^^
 
Cordialement,
Zorh.

Reply

Marsh Posté le 31-10-2006 à 15:17:06    

up

Reply

Marsh Posté le 31-10-2006 à 21:29:57    

Bonsoir,
En supposant le classeur ouvert:
 
 
Option Explicit
 
Function suivant(nb As Long) As Long
    Dim tempo As Long
    tempo = nb + 11
        If Right(tempo, 1) = "7" Then tempo = tempo - 7
    suivant = tempo
End Function
 
Sub calcul_LTA()
 
Dim nb_suite As Long
Dim Ref_CA As Long
Dim boucle As Long
 Dim debut As Long
Dim lignesuivante As Long
 
SAISIE:
debut = CLng(InputBox("début de la suite ??" ))
If Right(debut, 1) > 6 Then
MsgBox ("N° LTA érroné !" )
GoTo SAISIE:
End If
debut = debut - 11
nb_suite = CLng(InputBox("Nombre de LTA disponible ??" ))
Ref_CA = CLng(InputBox("Reférence Compagnie ( 3 chiffres )" ))
 
If Cells(1, 1) = "" Then
lignesuivante = 1
Else
lignesuivante = Cells(65536, 1).End(xlUp).Row + 1
End If
For boucle = 1 To nb_suite
debut = suivant(debut)
Cells(lignesuivante, 1) = debut
Cells(lignesuivante, 2) = Ref_CA
lignesuivante = lignesuivante + 1
 
Next boucle
 
End Sub
 
Cordialement
 
Félicitations au collègue (maternité ou paternité?)


Message édité par seniorpapou le 31-10-2006 à 21:32:25
Reply

Marsh Posté le 02-11-2006 à 16:56:13    

sa marche nikel merci :

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed