Code erreur

Shangoat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Shangoat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

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

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   Statut Membre Dernière intervention  
 

non justement...

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

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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   478 > Shangoat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 

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