Code erreur

Fermé
Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022 - 10 août 2022 à 12:41
Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022 - 10 août 2022 à 21:28

bonjour je suis débutant en vba j'aimerai écrire une fonction pour identifier les personnes...je veux faire un déplacement i,j

par exemple pour la 1ère ligne quand i vaut 1 je veux pouvoir faire un déplacement par colonne genre j varie 

ensuite que le processus recommence quand je passe à la ligne suivante jusqu'à ce que je finisse l'enregistrement

voilà mon code

Function Identification() As String
Dim nom, prénom, lieunaissance As String
Dim datenaissance As Date
Dim macellule As Range
Dim i, j As Integer
For i = 1 To 3
For j = 0 To 3
nom = InputBox("Veuillez saisir votre nom")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = nom
prénom = InputBox("Veuillez saisir votre prénom")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = prénom
datenaissance = InputBox("Veuillez saisir votre date de naissance")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = datenaissance
lieunaissance = InputBox("Veuillez saisir votre lieu de naissance")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = lieunaissance
Next j
Next i
End Function

toutees vos aides seront les bienvenues

A voir également:

1 réponse

yg_be Messages postés 22832 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 mai 2024 1 471
10 août 2022 à 14:38

bonjour,

merci de tenir compte de ceci quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Ton code fonctionne bien?  As-tu une question?

0
yg_be Messages postés 22832 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 mai 2024 1 471
10 août 2022 à 14:40

Moi, je supprimerais j et sa boucle, et je mettrais les nombres de 0 à 3 à la place de j, dans offset().

0
Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022
10 août 2022 à 14:41

non justement...

0
yg_be Messages postés 22832 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 mai 2024 1 471 > Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022
10 août 2022 à 14:43

au lieu de 

Set macellule = Range("c2").Offset(i, j)
macellule.Value = nom

tu peux aussi écrire

Range("c2").Offset(i, j) = nom
0
Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022
10 août 2022 à 14:43
Function Identification() As String
Dim nom, prénom, lieunaissance As String
Dim datenaissance As Date
Dim macellule As Range
Dim i, j As Integer
For i = 1 To 3
For j = 0 To 3
nom = InputBox("Veuillez saisir votre nom")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = nom
prénom = InputBox("Veuillez saisir votre prénom")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = prénom
datenaissance = InputBox("Veuillez saisir votre date de naissance")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = datenaissance
lieunaissance = InputBox("Veuillez saisir votre lieu de naissance")
Set macellule = Range("c2").Offset(i, j)
macellule.Value = lieunaissance
Next j
Next i
End Function

pour la 1ère ligne quand i vaut 1 je veux pouvoir faire un déplacement par colonne au lieu de cela ça écrase la valeur de la 1ère case

0
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478 > Shangoat Messages postés 12 Date d'inscription mercredi 10 août 2022 Statut Membre Dernière intervention 10 août 2022
10 août 2022 à 15:20

Bonjour à vous deux,

C'est normal puisque j vaut 0 donc tu ne décalera pas vers la droite pour y mettre ta valeur.

Avec cette instruction ça devrait fonctionner:

For j = 1 To 4
0