Probléme de code décalage ligne VBA excel

[Résolu/Fermé]
Signaler
Messages postés
38
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
23 octobre 2008
-
Messages postés
38
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
23 octobre 2008
-
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

2 réponses

Messages postés
146
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
5 juin 2012
60
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.
Messages postés
38
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
23 octobre 2008

Merci Papou oui comme cela ça fonctionne super.
merci merci
Lindette