Macro et formatage conditionnel sous CALC

Marko -  
 Marko -
Bonjour,
Je possède un fichier avec une macro sous calc qui n'est pas de moi. Cette macro permet lorsqu'on clique dessus d'inscrire (suivant le bouton) dans des cellules sélectionnées des caractères et colore via un formatage conditionnel.
Cette macro est insérée dans un calendrier me permettant d'effectuer un prévisionnel de planning.
Le problème est que je ne connais pas le language Basic et ne comprends donc rien ou presque à la macro que j'ai récupéré sur le net (d'où de nombreuses colonnes masquées). Egalement j'avais réussi à créer un bouton ANNULER qui me permettait d'annuler la dernière action effectuée.
Voilà, je suis perdu et j'ai beau tenté de chercher les solution sur le net, je ne réussi qu'à me perdre encore plus. Je vous demande donc de l'aide. Je peux vous fournir le fichier à la demande si vous le souhaitez.
Par avance merci !!!

Configuration: Macintosh / Safari 13.1

6 réponses

  1. yclik Messages postés 3872 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonjour

    une autre proposition avec un bouton effacer au lieu de "annuler"
    formatage conditionnel uniquement sur 1ère sem janvier

    Inspiré d'ici
    1
  2. yclik Messages postés 3872 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonjour
    Un exemple de classeur dépersonnalisé serait à mettre sur Cjoint pour avoir les meilleures réponses possibles.
    Comment déposer sur Cjoint.fr
    0
  3. Marko
     
    Voici le lien du fichier. Merci d'avance pour le coup d'oeil. Sincèrement.
    https://www.cjoint.com/c/JEpqdHqzSPB
    0
  4. yclik Messages postés 3872 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonsoir

    la macro fonctionne, la dernière ligne du code
    oCell.string = label 

    récupere le nom du bouton
    pour le voir :
    affichage >barre d'outil >controle de formulaire
    icône ébauche (équere)
    clik droit sur le bouton>propriété



    pour la mise en forme conditionnelle
    0
    1. Marko
       
      OK je vais tester ça dès que je peux. Merci beaucoup !!! Je clôture le sujet si tout est OK et avec un grand merci.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marko
     
    Effectivement tu as raison, je n'arrivais même pas à la comprendre mais avec ton aide et une recherche sur Google j'ai pu déchiffrer.
    Reste deux hic , c'est lorsque je sélectionne plusieurs cellules cela ne fonctionne pas. Je dois le faire cellule par cellule, ce qui est assez fastidieux. Existe t il une variante permettant cela ?
    Deuxième problème: j'ai bien des lignes de commande qui permettent l'annulation des actions précédentes :

    Function MajColor(oCell, sBtn As String, oDescriptor) As String
    Dim aRet() As String, aCell() As String, sCell As String, sRet As String
    Dim oSheetData As Object, oCellData As Object, oFound
    oSheetData = thisComponent.Sheets.getByName("Donnees")

    With oCell.CellAddress
    IF .Column < 6 OR .Column > 400 OR .Row < 4 OR .row > 205 Then
    aRet = split(oCell.AbsoluteName,".$")
    MajColor = aRet(1) : Exit Function
    End IF
    End With

    IF sBtn ="ANNUL" Then
    oCell.CellBackColor = -1
    oCell.CharColor = -1
    oCell.String = ""
    Else
    oFound = oSheetData.findFirst(oDescriptor)
    IF Not IsNull(oFound) Then
    aCell = split(oFound.AbsoluteName, ".$A$")
    sCell = "$B$" & aCell(1)
    oCellData = oSheetData.getCellRangeByName(sCell)
    oCell.CellBackColor = oCellData.CellBackColor
    oCell.CharColor = oCellData.CharColor
    oCell.String = oCellData.String
    End If
    End If
    ' MajColor = ""
    End Function

    Cependant lorsque je créé un bouton et lui assigne la macro, cela m'écrit "ANNUL" dans la case respectant la première instruction.

    Désolé du retard de ma réponse, les courses le chien , le petit, le ménage... ;-)
    0
  7. Marko
     
    Superbe !!! Merci beaucoup !!! Bon je n'ai plus qu'à me trouver "Basic pour les nuls" ou un traducteur !!!
    Merci à tous !!
    0