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 :

Interpolation de points


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut Interpolation de points
    Bonjour aux experts!

    Voilà je débute en VBA sous excel, et je patauge un peu dans l'élaboration des macros pour ce que j'aimerais faire. Il y en a en réalité deux, du même genre de difficulté.

    1) Je dispose de trois colonnes (qui contiennent la bathymétrie des berges d'une rivière: X,Y,Z). Le soucis est que parfois, je n'ai pas assez de points et que je dois interpoler entre deux points. Pour le moment, je le fais manuellement, en décalant les lignes un à une pour avoir chaque fois une ligne vide entre chaque ligne, puis en prennant la moyenne.

    Exemple: mes données sont dans les cases en A,B,C de 1 à 10. Je les décale et j'ai donc de 1 à 19. Dans la case vide A2 j'écris

    .

    Ensuite je copie, sélectionne toutes les cases nécessitant le calcul (A,B,C; 2,4,..,18) et je colle. Cela fonctionne bien mais j'aimerais automatiser cela car à la longue c'est très lourd.

    2) Plus facile je pense, toujours avec mes 3 colonnes de X,Y,Z, j'ai parfois besoin de modifier la colonne Z pour créer une interpolation linéaire entre la première et la dernière case, pour créer une pente artificielle.

    Avec les cases rien de compliqué, exemple si j'ai en A,B,C de 1 à 10 les X,Y,Z de 10 points, en gardant le C1et C10, j'efface les C(2:9) pour écrire en C2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =C1+($C$10-$C$1)/(NB($B$2:$B$10))
    avant d'étirer. De nouveau, cela marche bien mais j'aimerais savoir s'il est possible d'écrire une macro qui ferait une bonne partie du boulot

    D'avance un grand merci pour votre aide!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Bonjour,

    1) Oui c'est possible: tu peux, par exemple, insérer une ligne (méthode Insert pour objet Range) toutes les lignes paires et ensuite écrire la formule qui va bien dans toutes tes lignes paires (ou calculer directement leur valeur en utilisant le collection WorksheetFunction qui permet d'utiliser pas mal de formules Excel en VBA).

    2) Tu peux utiliser la méthode PasteSpecial des objets Range pour ne coller que les formules. Pour que ce soit ergonomique, tu peux même écrire une macro qui lorsque tu as sélectionné la première et la dernière cellule (C1 et C10 dans ton exemple) écrive les formules ou calcule la valeur de toutes les cellules situées entre les deux et associer cette macro à un raccourci clavier.

Discussions similaires

  1. Interpolation de points sur un graphe déroulant
    Par youdla dans le forum LabVIEW
    Réponses: 7
    Dernier message: 18/05/2011, 11h33
  2. Interpolation de points sur un plan
    Par deubelte dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 21/04/2009, 12h05
  3. Interpolation de points sur cone oblique
    Par b0ris dans le forum Mathématiques
    Réponses: 12
    Dernier message: 27/10/2007, 21h41
  4. Interpolation "linéaire" sur un point dans triangle (3D)
    Par Vol dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 09/07/2006, 22h34
  5. interpolation couleur entre nuage de points
    Par soubre dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/07/2005, 15h52

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