IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Simplification d'écriture n°de lignes [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut Simplification d'écriture n°de lignes
    Bonjour,

    Ci dessous mon code pour remplir automatiquement le n° de la ligne quand celle-ci n'est pas vide.
    Mon code fonctionne bien, mais a mon avis on peut faire mieux car là ça ne concerne que les 3 premières lignes de ma feuille qui en contient 50.

    Quelle solution pour simplifier l'écriture pour les 50 lignes?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    If Range("B20").Value <> "" Then
        Range("A20").Value = 1
        End If
     
        If Range("B20").Value = "" Then
        Range("A20").Value = ""
        End If
     
        If Range("B21").Value <> "" Then
        Range("A21").Value = 2
        End If
     
        If Range("B21").Value = "" Then
        Range("A21").Value = ""
        End If
     
        If Range("B22").Value <> "" Then
        Range("A22").Value = 3
        End If
     
        If Range("B22").Value = "" Then
        Range("A22").Value = ""
        End If

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim i as integer
    For i=0 to 2
    If Range("B20").offset(i).Value <> "" Then
        Range("A20").offset(i).Value = 1
        End If
    Next

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut
    Bonsoir et merci,
    Ton code est bien, mais je me rend compte que dans le cas où on saute une ligne ça ne marche plus.
    Idéalement j'aimerai que si sur une ligne "x" si les cellules Bx ou Cx <>"" alors on rempli la cellule Ax=1

    Pour la ligne suivant "y" (la ligne suivant n'étant pas forcément celle juste en dessous, il peut y avoir une ligne non remplie entre les deux)
    si les cellules By ou Cy <>"" alors on rempli la cellule Ay=1+ "nombre de ligne déjà entrée" (écrire 2 si c'est la deuxième, 3 si c'est la troisième...)

    Peux tu s'il te plait commenter ton code afin que je le comprenne et ainsi peux être trouver la solution par moi même?

    Merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim i as integer
    For i=0 to 2
    If Range("B20").offset(i).Value <> "" Then
        Range("A20").offset(i).Value = 1
        End If
    Next
    Merci,

    Ca marche très bien
    Voici mon code final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim i As Integer
    For i = 0 To 50 'compteur de 0 à 50
    If Range("C20").Offset(i).Value <> "" Then 'si C20 x compteur valeur vide alors
        Range("A20").Offset(i).Value = 1 + (i)
        Range("A20:I20").Offset(i).Borders.Value = 1
        End If
     
        'Next
        'For i = 0 To 2
    If Range("C20").Offset(i).Value = "" Then
        Range("A20").Offset(i).Value = ""
        Range("A20:I20").Offset(i).Borders.Value = 0
        End If
     
    Next

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] bindParam simplification d'écriture ?
    Par Pandora dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 02/07/2013, 08h11
  2. [XL-2010] Simplification d'écriture du code
    Par canary dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/01/2013, 15h56
  3. Réponses: 8
    Dernier message: 18/07/2010, 21h16
  4. écriture à la ligne boucle for + echo ?
    Par nekcorp dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 05/11/2008, 17h10
  5. Héritage et simplification d'écriture
    Par franco01 dans le forum C++
    Réponses: 7
    Dernier message: 17/02/2006, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo