[ RÉSOLU] Copie d'une formule avec une boucle

sophie34

XLDnaute Junior
Bonjour tout le monde.

Aujourd'hui je me lance sur un nouveau tableau.
Et j'aimerai copier par une macro 4 formules qui se re-bouclent.

Je m'explique:

J'ai dans ce tableau 4 colonnes qui représentent des coordonées °mm'ss" et des coordonées décimale.

Colonne E: Latitude °
Colonne F: Longitude °
Colonne G: Latitude décimale
Colonne H: Longitude décimale

J'aimerai appliquer la formule =G(x)/24 pour toute les cellules de la colonne E (exemple E2=G2/24)
La même formule pour la colonne F en respectant les cellules soit F2=H2*24

Et pour les colonne G et H c'est le contraire G(x)=E(x)*24 et H(x)=F(x)*24

En gros si vous connaissait les coordonnées d'un point au format décimale, automatiquement cela se calcul au format ° et inversement .........


Je vous joins mon fichier avec les différents macros que j'ai pu utiliser sans succes quand je tape dans la cellule E10 par exemple. (j'ai laisser que 2 exemples de macro, car les autres ne fonctionnaient pas non plus !)

Merci de votre aide !!!


PS: Il faut modifier dans la macro dms2_dec2 le * par un /
 

Pièces jointes

  • Tableau récap site.xlsm
    20.7 KB · Affichages: 46
Dernière édition:

fanfan38

XLDnaute Barbatruc
Re : Copie d'une formule avec une boucle

Bonjour
Clic avec le bouton droit de ta souris sur le nom de la feuille concernée (feuil1 dans ton exemple)
sélectionne visualiser le code
Copie cette macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Or Target.Column > 6 Then Exit Sub
lig = Target.Row
Cells(lig, 7).Value = Cells(lig, 5).Value * 24
Cells(lig, 8).Value = Cells(lig, 6).Value * 24
End Sub

A chaque saisie dans la colonne E ou dans la colonne F les colonnes G et H sont mises à jour...

A+ François
 

francedemo

XLDnaute Occasionnel
Re : Copie d'une formule avec une boucle

bonjour à tous,

pour aller plus loin avec ce que j'ai compris de la demande:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  
Dim lig As Long
  
If Target.Column < 5 Or Target.Column > 8 Then Exit Sub

If Target.Column < 7 Then
    lig = Target.Row
    Cells(lig, 7).Value = Cells(lig, 5).Value / 24
    Cells(lig, 8).Value = Cells(lig, 6).Value / 24
End If
If Target.Column > 6 Then
    lig = Target.Row
    Cells(lig, 5).Value = Cells(lig, 7).Value * 24
    Cells(lig, 6).Value = Cells(lig, 8).Value * 24
End If

End Sub

pas testé...
à+
 
Dernière édition:

sophie34

XLDnaute Junior
Re : Copie d'une formule avec une boucle

Bonjour fanfan38, bonjour francedemo !!!

@fanfan38, Merci pour ton code, il fonctionne très bien. Je vais de suite me mettre à l'interpréter pour faire de même pour les colonnes G et H.

@francedemo: Je n'ai pas encore regardé ton code, mais je le fais de suite dans une copie du fichier.

Je reviens vers vous avec mes constats .... fanfan, si je n'arrive pas à inverser la formule, je serai ravie que vous y jeter un petit coup de d'écran ;)

Merci à vous deux pour votre réactivité !
 

sophie34

XLDnaute Junior
Re : Copie d'une formule avec une boucle

@ Francedemo: ton code me fait planter Excel, dès que je sélectionne entrée pour valider les données.
Peux tu le testé chez toi et me dire si tu as le même résultat ?

Merci d'avance
 

francedemo

XLDnaute Occasionnel
Re : Copie d'une formule avec une boucle

idem, ça plante
dsl, je regarde pourquoi
à tout'
bon, chez moi, cette version fonctionne
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim lig As Long

If Target.Count > 1 Then Exit Sub 
If Target.Column < 5 Or Target.Column > 8 Or Target.Value = "" Then Exit Sub
lig = Target.Row
If Target.Column = 6 Then
    Cells(lig, 7).Value = Cells(lig, 5).Value / 24
    Cells(lig, 8).Value = Cells(lig, 6).Value / 24
    Exit Sub
End If
If Target.Column = 8 Then
    Cells(lig, 5).Value = Cells(lig, 7).Value * 24
    Cells(lig, 6).Value = Cells(lig, 8).Value * 24
End If

End Sub
essaye de tester
en fait, j'ai ajouter une autre condition pour interdire la sélection de plusieurs cellules.
et il faut remplir la colonne 5 et le calcul ne se fait que lorsque la colonne 6 est remplie
(et inversement pour la 7 et la 8)

(en fait, ça bouclait tout le temps, et tu ne pouvais sortir de la boucle...)
 
Dernière édition:

francedemo

XLDnaute Occasionnel
Re : Copie d'une formule avec une boucle

ou alors, ça, ça a l'air de fonctionner aussi...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim lig As Long
 
If Target.Count > 1 Then Exit Sub
lig = Target.Row
Select Case Target.Column
    Case 5, 6
        Cells(lig, Target.Column + 2).Value = Cells(lig, Target.Column).Value / 24
    Case 7, 8
        Cells(lig, Target.Column - 2).Value = Cells(lig, Target.Column).Value * 24
End Select

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 680
Messages
2 090 865
Membres
104 681
dernier inscrit
Gtcheumawe