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 :

boucle et cut/paste


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut boucle et cut/paste
    Bonjour, j'ai un problème avec un petit bout de code.

    J'ai une colonne contenant environ 5000 entrée. Toutes les 85 entrées, je souhaiterais sélectionner la cellule suivante, à partir de celle-ci étendre la sélection jusqu'en bas, la couper, et la coller une cellule après vers le bas (donc décaler tout le contenu de la colonne d'un cran) et dans la cellule vide créée (dû au décalage de 1) faire une simple moyenne entre la valeur de la cellule avant celle vide et celle juste après.

    Je sais, c'est pas le Pérou mais ça fait un moment que j'ai plus la tête au VBA et comme je sais que la syntaxe est particulière, j'ai dû me foirer quelque part.

    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
    Sub addline()
     
        Dim i, s, x As Integer
        Dim z, y As Long
     
        s = 85
        x = 1
     
        Do
            Range("B" & s * x + 1).End(xlDown).Cut Destination:=Range("B" & s * x + 2)
            z = Range("B" & s * x).Value + Range("B" & s * x + 2).Value
            y = z / 2
            Range("B" & s * x + 1).Value = y
            x = x + 1
        Loop While x = 58
     
    End Sub
    Auriez-vous une suggestion ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénierie de Maintenance
    Inscrit en
    Août 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénierie de Maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 29
    Par défaut boucle et cut/paste
    bonjour !

    je suggère d'insérer une ligne à la ligne 86 et toutes les x lignes (85 86 ?), afin de faire le décalage du reste des données en une seule manœuvre ...

    le n° de ligne insérée est connu. On peut insérer la fonction moyenne souhaitée ...

    AMHA

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénierie de Maintenance
    Inscrit en
    Août 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénierie de Maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 29
    Par défaut boucle et cut/paste
    Loop While x = 58
    la boucle s’exécute 1 fois puis sortie car "boucle pendant que x=58"


    Loop until x=58 ou >=58 suivant le cas pour intégrer le dernier élément de boucle.


    exécuter la sub en mode F8, exécution pas à pas pour valider le 1 er mouvement de la boucle

    si modif du code, enregistrer avant de lancer ci dessous

    exécuter la sub en mode F5 en mettant

    if x>=57 then stop juste sous le "do".

    ceci permettra de suivre l'avant dernier mouvement de la boucle et le dernier mouvement à 58

    Nota : j'ai utilisé les balises code pour le message forum mais je ne vois aucune différence en prévisualisation. je mets le code en bleu

  4. #4
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour

    En PJ un fichier qui fait le décalage et les moyennes instantanément. Tu peux ajouter à loisir des lignes en B tu auras toujours des regroupements de 85 lignes.
    Pour que tu puisses vérifier le résultat j'ai reporté les données en colonne E mais il te suffit de modifier la dernière ligne de code si le résultat te va.

    Teste et dis nous.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Mon dernier fichier joint a t'il résolu votre problème ?

Discussions similaires

  1. Cut/paste, svg et javascript
    Par magnum6669 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/01/2013, 08h21
  2. Question sur un cut/paste dans un même fichier
    Par dlm64 dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 02/12/2012, 10h03
  3. [XL-2007] Copy et Cut Past ne fonctionne plus
    Par colio dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2012, 12h56
  4. faire rectangle de selection puis cut/paste
    Par linkB2 dans le forum 2D
    Réponses: 4
    Dernier message: 28/04/2006, 12h02
  5. Mise en forme conditionnelle en VBA / Cut-Paste
    Par priest69 dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2005, 13h54

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