Code erreur

Shangoat Messages postés 12 Statut Membre -  
Shangoat Messages postés 12 Statut Membre -

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

1 réponse

yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 586
 

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 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 586
 

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 Statut Membre
 

non justement...

0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 586 > Shangoat Messages postés 12 Statut Membre
 

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 Statut Membre
 
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 1823 Statut Membre 478 > Shangoat Messages postés 12 Statut Membre
 

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