Code erreur

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

  1. Contributeur

    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?

    1. Contributeur

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

    2. non justement...

    3. Contributeur
      @Shangoat

      au lieu de 

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

      tu peux aussi écrire

      Range("c2").Offset(i, j) = nom
    4. 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

    5. @Shangoat

      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