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 :

[VBA-E] code pour incrémentation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut [VBA-E] code pour incrémentation
    Bonjour,

    je souhaiterais automatiser une incrémentation un peu particulière. ma première cellule contient par exemple a125100a et la seconde est vide. Ma troisième doit être incrémenté de 1 par rapport à la première (a125101a). la quatrième à nouveau vide, etc. Donc il faudrait que je n'ai qu'a rentré la première cellule et hop... fini.

    Je suis débutant et un peu perdu...
    Quelqu'un aurait-il l'amabilité de me mettre sur la voie ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Une boucle For dans laquelle tu incrémentes de 1 mais où tu fais ton offset de cellule avec ton index * 2.
    Pour le nombre, tu concatènes: a & le nombre & a.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    Citation Envoyé par AlainTech
    Une boucle For dans laquelle tu incrémentes de 1 mais où tu fais ton offset de cellule avec ton index * 2.
    Pour le nombre, tu concatènes: a & le nombre & a.
    Tout cela m'a l'air fort intéressant ! Malheureusement c'est là que je me rend compte que je suis encore débutant car je ne parvient pas à traduire cela en code...

    Si tu pouvais être un peu plus "concret" ce serait fort sympathique.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    traduction par un gérontologue

    for a=1 to z
    offset=a*2
    next a

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Un autre gérontologue a compris ça
    En supposant que ton premier nombre se trouve dans la colonne A...
    Quant au N° de ligne, tu trouveras tout seul ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LeCar = Left(Cells(NoLigne, 1), 1) 'On mémorise le caractère
    LeNombre = Replace(Cells(NoLigne, 1), LeCar, "") 'on sort le nombre à incrémenter
    For NoCol = 3 To nbcolonnes Step 2 'on va de colonne en colonne
         LeNombre = LeNombre + 1
         Cells(NoLigne, NoCol) = LeCar & LeNombre & LeCar
    Next
    Mais le débutant va nous départager

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Petite mise en application de ce que je proposais.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Dim i As Integer
      Dim iMax As Integer
      Dim iStart As Long
      iMax = 20
      iStart = Val(Mid([A1], 2, 6))
      For i = 1 To iMax
        Cells(i * 2 + 1, 1) = "a" & iStart + i & "a"
      Next i
    Je considère que je ne rends pas service en donnant du code tout mâché...

    Mais la chair est faible
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    si A1 contient a125100a, dans C1, tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(A1;1) & CNUM(DROITE(GAUCHE(A1;NBCAR(A1)-1);NBCAR(GAUCHE(A1;NBCAR(A1)-1))-1))+1 &DROITE(A1;1)
    Pour recopier à droite, tu sélectionnes A1 : D1 et tu recopies.
    Il y a peut être plus simple avec remplace mais ne sachant pas si le 1er caractère est toujours le même, Gauche et Droite pallient le problème
    A+

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par tarmin
    Je suis débutant et un peu perdu...
    Ca fait plus d'un an que tu viens sur ce forum et tu es encore débutant...???
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    Hey malheureusement oui (Bien que savoir à quelle moment on n'est plus débutant n'est pas vraiment évident...) On peut faire tellement de chose avec le VBA que je me considère encore novice...

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

Discussions similaires

  1. [VBA-E97]Code pour déprotéger une feuille de calcul
    Par blaiso dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2007, 11h30
  2. [VBA][SQL] code pour requete sql update en vba
    Par titocv723 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 24/10/2006, 17h45
  3. [VBA-A]Un code pour récupérer un type de donnée
    Par KEROZEN dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/04/2006, 16h56
  4. [VBA-A] Code vba pour inclure un formulaire Acces
    Par MadSquirrel dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2006, 18h19
  5. [VBA -A]Code pour répondre au question des msg d'alertes
    Par soad029 dans le forum VBA Access
    Réponses: 8
    Dernier message: 23/03/2006, 12h21

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