Comment traduire dans le code vba

MeliAntho - Modifié par Whismeril le 8/12/2014 à 07:00
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 8 déc. 2014 à 07:01
Bonjour,

Dans mon code, à partir d'une feuille je recopie des données dans le tableau d'une autre feuille.
Mais comment traduire que l'on veut que sa recopie sur les lignes autant de fois qu'il y aura de saisie ?
mon i reste à 1 et ne passe pas à 2 alors que je voudrais que sa passe à la ligne du dessous à chaque tour de boucle (mon nombre de i n'étant pas connu).
Voici mon code.
merci pour votre aide

Public Sub enrgt()
Dim Civilité As String
Dim Nom As String
Dim Prénom As String
Dim DDatenaissance As Date
Dim Niveauétudes As String
Dim RBG As Long
Dim PDC As Integer
Dim mensualités As Single
Dim C As Object
Dim i As Integer
i = 1

Civilité = Worksheets("Identité").Range("c3").Value
Nom = Worksheets("Identité").Range("c5").Value
Prénom = Worksheets("Identité").Range("C7").Value
DDatenaissance = Worksheets("Identité").Range("C9").Value
Niveauétudes = Worksheets("Identité").Range("c11").Value
RBG = Worksheets("Identité").Range("E18").Value
PDC = Worksheets("Identité").Range("F50").Value
mensualités = Worksheets("Identité").Range("c28").Value

Set C = Worksheets("Récapitulatif").Range("B3")
    C.Value = Civilité
    C.Offset(0, 1).Value = Nom 'cellule i colonne 2
    C.Offset(0, 2).Value = Prénom
    C.Offset(0, 3).Value = DDatenaissance
    C.Offset(0, 4).Value = Niveauétudes
    C.Offset(0, 5).Value = RBG
    C.Offset(0, 6).Value = PDC
    C.Offset(0, 7).Value = mensualités
Set C = C.Offset(1, 0)  'A chaque tour de boucle, C pointe la ligne du dessous'
i = i + 1
End Sub


Merci par avance
Mélissa

EDIT: Ajout de la coloration syntaxique.

1 réponse

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 8/12/2014 à 07:02
Bonjour,
je lis :
à chaque tour de boucle (mon nombre de i n'étant pas connu).

et ne vois aucune boucle dans ton code.
Faut-il en déduire que tu as ailleurs une boucle appelant ta sous-routine enrgt ?
Si oui, plusieurs solutions , si tu veux incrémenter la valeur de i :
- soit incrémenter i dans la boucle d'appel et la passer en paramètre de ta sous-routine
- soit déclarer i en variable générale de ton projet
- soit déclarer i en variable static dans ta sous-routine

Et il y a sûrement d'autres solutions, sans i, parmi lesquelles celle très simple d'aller à la dernière ligne remplie + 1 (ce ne sont pas les discussions qui manquent sur ce forum concernant cette dernière ligne remplie. Elle sont foison ...)
Observation : je reste assez étonné de ce que tu te focalises sur la valeur de i alors que tu ne l'utilises nulle part. Et ce fait est plutôt inquiétant.
-
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Rejoignez-nous