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 -
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
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:
- Probléme de code décalage ligne VBA excel
- Code ascii - Guide
- Liste déroulante excel - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
2 réponses
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 :
Espérant avoir pu t'aider.
Cordialement.
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.