-
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:
=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!
-
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.