Mathioustone
Messages postés20Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention16 mai 2011
-
22 déc. 2010 à 16:07
Mathioustone
Messages postés20Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention16 mai 2011
-
23 déc. 2010 à 10:24
Bonjour,
Je souhaite réaliser une petite fonction qui me permettrait d'imprimer une liste de dossier (dans une base de données) sans de devoir réaliser l'impression à chaque fois.
Ca marche... presque...
le principe est le suivant: j'ai deux textbox qui me permettent de définir le dossier de départ et le dossier final.
Je test si les chaines sont identiques, dans un premier temps ça ne sera pas le cas: je lance donc l'impression.
ensuite je cherche à remplacer ma première chaine qui sera du genre CAP1234 par la suivante qui serait en logique CAP1235. J'extrait donc ma partie numérique afin de pouvoir l'incrémenter et la remettre dans ma chaine... mais là, je bloque je n'arrive pas à utiliser la fonction "replace" correctement afin de remplacer ma chaine. car dans le cas échéant, j'ai vidé mon imprimante ^^
Voici mon code:
Private Sub impression_Click()
Dim X As String
Dim Y As String
Do While TextBox1.Value <> TextBox2.Value ' comparer les deux chaines
ActiveSheet.PrintOut ' Lancer l'impression
X = Right(TextBox1.Value, 4)
Y = Right(TextBox1.Value, 4)
X = X + 1 'incrémentation
TextBox1.Value = Replace(TextBox1.Value, Y, X)
Loop
End Sub
Apprendre le français avant d'apprendre tout autre langage est une chose essentielle
Mathioustone
Messages postés20Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention16 mai 2011 23 déc. 2010 à 10:24
Merci bien!! j'aurais pu piocher la dessus encore un bon moment^^
Bon une autre requète me vient à l'esprit.
Voici mon programme final ( qui fonctionne ) :
Private Sub impression_Click()
Dim X As String
Dim Y As String
Dim U As Integer
Dim V As Integer
Dim W As Integer
Do While TextBox1.Value <> TextBox2.Value ' comparer les deux chaines
ActiveSheet.PrintOut ' Lancer l'impression
U = Mid(TextBox1.Value, 4, 1) ' extraction du premier chiffre du numéro de dossier
If U 0 Then ' test si U 0
V = Mid(TextBox1.Value, 5, 1) ' extraction du deuxième chiffre du numéro de dossier
If V 0 Then ' test si V 0
W = Mid(TextBox1.Value, 6, 1) ' extraction du troisième chiffre du numéro de dossier
If W 0 Then ' test si W 0
X = Right(TextBox1.Value, 1) 'extraction du numéro de dossier à incrémenter
Y = Right(TextBox1.Value, 1) 'extraction du numéro de dossier à remplacer
X = X + 1 'incrémentation du numéro de dossier
TextBox1.Text = Replace(TextBox1.Text, Y, X) ' Remplacement de la deuxième partie de la chaine
Else
X = Right(TextBox1.Value, 2) 'extraction du numéro de dossier à incrémenter
Y = Right(TextBox1.Value, 2) 'extraction du numéro de dossier à remplacer
X = X + 1 'incrémentation du numéro de dossier
TextBox1.Text = Replace(TextBox1.Text, Y, X) ' Remplacement de la deuxième partie de la chaine
End If
Else
X = Right(TextBox1.Value, 3) 'extraction du numéro de dossier à incrémenter
Y = Right(TextBox1.Value, 3) 'extraction du numéro de dossier à remplacer
X = X + 1 'incrémentation du numéro de dossier
TextBox1.Text = Replace(TextBox1.Text, Y, X) ' Remplacement de la deuxième partie de la chaine
End If
TextBox1.Text = Replace(TextBox1.Text, Y, X) ' Remplacement de la deuxième partie de la chaine
Else
X = Right(TextBox1.Value, 4)
Y = Right(TextBox1.Value, 4)
X = X + 1 'incrémentation du numéro de dossier
TextBox1.Text = Replace(TextBox1.Text, Y, X) ' Remplacement de la deuxième partie de la chaine
End If
Loop
End Sub
j'explique au cas ou...
J'ai donc mes deux textbox à comparer mais dans le cas où le dossier serait du style: ABC0010 ou bien EFG0004, après remplacement, notre cher "Bill" nous retire gentillement les zéros entre les lettres et le chiffre en croyant qu'ils n'ont aucune utilité: ABC11, EFG5. Mais au contraire, cela diminue donc la taille de ma chaine... enfin bref, problème résolu :)
Mais si quelqu'un aurait une astuce pour réduire ce programme (qui est quand mm conséquent pour une simple comparaison+impression, je suis preneur sinon tampis, déjà ça marche!!
encore merci
Apprendre le français avant d'apprendre tout autre langage est une chose essentielle