Probléme de code décalage ligne VBA excel

Résolu
Bonjour,

J ai une grille avec 3 colonnes et j'ai ce code:

"
Sub remplirdevis()
Dim codeprod
codeprod = InputBox("Saisissez le code produit :", "SAISIE CODE PRODUIT")
Dim quantite
quantite = InputBox("saisissez la quantité correspondante :", "SAISIE QUANTITE PRODUIT")
If Range("A25").Value = "" Then
decalage = 0
Range("A25").Select
Range("A25").Value = UCase(codeprod)
ActiveCell.Offset(0, 2).Range("A24").Select
ActiveCell.Value = quantite
Else
Position = Range("A24").End(xlDown).Address
Range(Position).Select
decalage = 1
ActiveCell.Offset(decalage, 0).Range("A24").Select
ActiveCell.Value = UCase(codeprod)
ActiveCell.Offset(0, 2).Range("A24").Select
ActiveCell.Value = quantite
End If
End Sub
"
et donc dans la boite de dialogue je tape le code du produit et la quantité donc normalement la description du produit devrait etre en B25 et la quantité en C25 mais avec le code ci dessus la description se met bien en B25 par contre la quantité s'inscrit enC48.
quelqu'un voit il une erreur dans mon code
C'est bizarre car si je le fait en meettant les cellules A1 et A2? il fonctionne trés bien....
merci d'avance pour votre aide
Linda
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Merci Papou oui comme cela ça fonctionne super.
    merci merci
    Lindette
    1. Bonjour lindette,

      En modifiant ton code comme ci-dessous, celà devrait te convenir.

      Sub remplirdevis()
      Dim codeprod
      codeprod = InputBox("Saisissez le code produit :", "SAISIE CODE PRODUIT")
      Dim quantite
      quantite = InputBox("saisissez la quantité correspondante :", "SAISIE QUANTITE PRODUIT")
      If Range("A25").Value = "" Then
      decalage = 0
      Range("A25").Select
      Range("A25").Value = UCase(codeprod)
      ActiveCell.Offset(0, 2).Select
      ActiveCell.Value = quantite
      Else
      Position = Range("A65536").End(xlUp).Address
      Range(Position).Select
      decalage = 1
      ActiveCell.Offset(decalage, 0).Select
      ActiveCell.Value = UCase(codeprod)
      ActiveCell.Offset(0, 2).Select
      ActiveCell.Value = quantite
      End If
      End Sub

      autre version possible :

      Sub remplirdevis1()
      Dim codeprod
      codeprod = InputBox("Saisissez le code produit :", "SAISIE CODE PRODUIT")
      Dim quantite
      quantite = InputBox("saisissez la quantité correspondante :", "SAISIE QUANTITE PRODUIT")
      If Range("A25").Value = "" Then
      Range("A25").Value = UCase(codeprod)
      Range("C25").Value = quantite
      Else
      Position = Range("A65536").End(xlUp).Row + 1
      Cells(Position, 1).Value = UCase(codeprod)
      Cells(Position, 3).Value = quantite
      End If
      End Sub

      Espérant avoir pu t'aider.

      Cordialement.