Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro pour débutant

  • Initiateur de la discussion Initiateur de la discussion gajosse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gajosse

Guest
Bonjour à tous
je pensais vraiment pouvoir me débrouiller tout seul et apprendre rapidement quelques rudiments de visual basic, ben c'est un fiasco😱
je me retrouve donc après plusieurs jours au point zéro, parvenant à peine à déchiffrer la logique de programmation, incapable d'écrire la moindre ligne et avec les plus grandes difficultés à traduire ce que je souhaite en termes clairs
donc je me rabats sur un fichier excel en pièce jointe, griffoné avec de jolis traits et des belles couleurs, en espérant qu'un chevalier blanc comprendra mon charabia et saura me tirer de ce mauvais pas. 😛
Salutations cordiales
 

Pièces jointes

Re : macro pour débutant

Bonjour gajosse
Ce que vous voulez faire n'est peut-être pas exactement ce qui convient pour débuter. Je joins une solution par formules et mise en forme conditionnelle pour dépanner, et j'essaierai de voir comment programmer cela dans la soirée.
Bon courage en attendant...​
ROGER2327
 

Pièces jointes

Dernière édition:
Re : macro pour débutant

Bonsoir Roger
Merci infiniment pour votre intervention
Je voudrais juste préciser que la fonction est à intégrer colonnes D et E , ses éléments de calcul sont déterminées par la plage variable délimitée par des bornes qui se trouvent dans la colonne C, bornes dont la formule est effectivement conditionnelle et que j'ai déjà insérée en colonne C
j'espère être plus explicite ainsi
 
Dernière modification par un modérateur:
Re : macro pour débutant

avec plus de couleurs encore... 😀
 

Pièces jointes

  • Sans titre.jpg
    49.9 KB · Affichages: 102
  • Sans titre.jpg
    49.9 KB · Affichages: 109
  • Sans titre.jpg
    49.9 KB · Affichages: 103
Re : macro pour débutant

Re...
Une proposition en VisualBasic dans le classeur joint.
Code:
[COLOR="DarkSlateGray"]Sub extrema_relatifs()
Dim oDat(), sDat(), vRef1 As Double, vRef2 As Double
Dim i As Long, tf1 As Boolean, tf2 As Boolean
   With Range("A1") [COLOR="SeaGreen"]'*** Début des données[/COLOR]
      If Not IsEmpty(.Offset(1, 0)) And Not IsEmpty(.Offset(2, 0)) Then
         oDat = Range(.Cells, .End(xlDown)).Value
         ReDim sDat(1 To UBound(oDat, 1), 1 To 4)
         tf1 = oDat(2, 1) > oDat(1, 1)
         For i = 2 To UBound(oDat, 1)
            If oDat(i, 1) > oDat(i - 1, 1) <> tf1 Then
               tf1 = Not tf1
               vRef1 = vRef2
               vRef2 = oDat(i - 1, 1)
               sDat(i - 1, 2) = vRef2
               If tf2 Then
                  sDat(i - 1, 3) = vRef2 - vRef1 [COLOR="SeaGreen"]'Plutôt que vRef1 - vRef2[/COLOR]
                  If vRef2 <> 0 Then sDat(i - 1, 4) = 1 - vRef1 / vRef2
               End If
               tf2 = True
            End If
            sDat(i, 1) = 0 - tf1 [COLOR="SeaGreen"]'Est-ce utile ?[/COLOR]
         Next i
         .Offset(0, 1).Resize(UBound(oDat, 1), 4).Value = sDat
      End If
   End With
End Sub[/COLOR]
ROGER2327
 

Pièces jointes

Re : macro pour débutant

whouahou ! un grand merci très respectueux pour Roger 🙂
tout fonctionne parfaitement, et à très haute vitesse d'ailleurs. C'est bluffant !
Juste une question que signifie "UBound" je ne comprends pas cette commande.
par ailleurs quand tu écris " sDat(i, 1) = 0 - tf1 'Est-ce utile ?"
je comprends que c'est la fonction qui permet de ne pas lancer le calcul sur la première plage car elle ne possède pas de référence relative ce qui renverrait une erreur de calcul. Si c'est le cas oui c'est utile 🙂
 
Re : macro pour débutant

Bonjour gajosse
dit l'aide de VisualBasic...
_
Pour ce qui est de la ligne dont je m'interroge sur l'utilité, elle n'a aucun autre rôle que de permettre de renvoyer 0 ou 1 dans la colonne B. Si on ne s'en sert pas ensuite dans la feuille de calcul, on peut supprimer la colonne B et obtenir ce que vous trouverez dans le classeur joint.
Le contrôle de décision pour effectuer les calculs dont les résultats apparaissent dans les colonnes D et E est assuré par le booléen tf2.
Voilà...
ROGER2327
 

Pièces jointes

Re : macro pour débutant

bonjour
le graph m'inspire quelques autres variantes qui permettraient de calculer des fréquences tel que mentionné dans la pièce jointe ? cela est-il possible ?
par ailleurs j'ai essayé de rajouter une requète booléenne pour le calcul des durées en me disant qu'il suffisait juste de dupliquer le modèle mais je suis complètement à l'ouest 😕 Par ailleurs, croyez vous qu'il soit possible de commenter les lignes de code pour les rendre plus compréhensibles ? je me suis procuré un guide de programmation chez Pinault mais que je trouve peu explicite car la structure mentale et la logique de construction qui permet de comprendre le mécanisme d'écriture n'est pas développée, du coup j'ai l'impression de lire du chinois.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…