Probléme de code décalage ligne VBA excel

Résolu
lindette Messages postés 38 Statut Membre -  
lindette Messages postés 38 Statut Membre -
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. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    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.
    0
  2. lindette Messages postés 38 Statut Membre
     
    Merci Papou oui comme cela ça fonctionne super.
    merci merci
    Lindette
    0