Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 15h25   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 32
Points : 11
Points : 11
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 :
=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!
jimmypoker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 17h56   #2
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
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.
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h01.


 
 
 
 
Partenaires

Hébergement Web