Probléme de code décalage ligne VBA excel

Résolu/Fermé
lindette Messages postés 38 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 23 octobre 2008 - 9 oct. 2007 à 19:43
lindette Messages postés 38 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 23 octobre 2008 - 9 oct. 2007 à 22:12
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
A voir également:

2 réponses

Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
9 oct. 2007 à 20:51
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
lindette Messages postés 38 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 23 octobre 2008
9 oct. 2007 à 22:12
Merci Papou oui comme cela ça fonctionne super.
merci merci
Lindette
0