Formulaire de modification

Chachabelk - 18 janv. 2017 à 21:18 - Dernière réponse : Patrice33740 6321 Messages postés dimanche 13 juin 2010Date d'inscription 14 décembre 2017 Dernière intervention
- 20 janv. 2017 à 11:42
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
Bonjour a toutes et tous,
essayant de comprendre les bases du VBA, j'essaye de comprendre en utilisant des macros déjà faites et en les adaptant a mes problématiques mais sans résultats probants si quelqu'un
pouvait m'aider a comprendre les betises dans le script suivant :
Private Sub UserForm_Initialize()
Dim nomNUMERO As String
nomNUMERO = InputBox("N° a Modifier", "Modification d'Enregistrement")

Dim ligne As Integer
For ligne = 2 To 15
If Cells(ligne, 1) = nomNUMERO Then
UserForm2.DESIGNATION = Cells(ligne, 2)
UserForm2.REFERENCE = Cells(ligne, 3)
UserForm2.PUACHAT = Cells(ligne, 4)
UserForm2.PUVENTE = Cells(ligne, 5)
UserForm2.ENTREE = Cells(ligne, 6)
End If
Next ligne
End Sub
Private Sub Modification_Click()
Dim MODIFICATION As Integer
MODIFICATION = NUMERO.Value
  For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
  If Range("A" & i).Value = NUMERO Then
Range("A" & i).Value = NUMERO.Value
Range("B" & i).Value = DESIGNATION.Value
Range("C" & i).Value = REFERENCE.Value
Range("D" & i).Value = PUACHAT.Value
Range("E" & i).Value = PUVENTE.Value
Range("F" & i).Value = ENTREE.Value
End If
Next i
End Sub



Private Sub ANNULATION_Click()

End Sub


merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

2 réponses

Répondre au sujet
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 18 janv. 2017 à 22:35
0
Utile
Bonjour
Le code montré est maladroit (mais c'est une autre affaire) mais sans erreur visible.
deux remarques :
1) il est nécessaire qu'existent sur ton userform les contrôles que tu évoques et qu'ils possèdent bien une propriété Value
2) sans spécification de la feuille de calcul concernée par les plages modifiées, ces plages seront celles de la feuille active
Commenter la réponse de ucfoutu
Patrice33740 6321 Messages postés dimanche 13 juin 2010Date d'inscription 14 décembre 2017 Dernière intervention - 20 janv. 2017 à 11:42
0
Utile
Bonjour,

Pour compléter, puisque tu débutes en VBA, autant prendre quelques bonnes habitudes dès maintenant.

1. Commencer chaque module par
Option Explicit
: ça t'oblige à déclarer toutes les variables, ça évite les ambigüités et ça limite les risques d'erreur.

2. Respecter certaines règles de nommage des variables, notamment l'emploi d'un préfixe qui identifie le type de variable : le code est plus lisible par tous. Plus d'explications ici : Conventions typographiques

3. Proscrire l'emploi des instruction implicites, c'est-à-dire préciser systématiquement le(s) parent(s) des objets autant que nécessaire et préciser la propriété concernée : ça évite aussi les ambigüités et ça limite les risques de résultat inattendu. Par exemple au lieu d'écrire :
  UserForm2.DESIGNATION = Cells(ligne, 2)
écrire plus précisément :
  UserForm2.tbxDesignation.Value = ThisWorkbook.Worksheets("Feuil1").Cells(ligne, 2).Value
ou selon le besoin :
  UserForm2.tbxDesignation.Text = ThisWorkbook.Worksheets("Feuil1").Cells(ligne, 2).Text
ce qui, évidemment, ne donne pas le même résultat !
Commenter la réponse de Patrice33740

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.