Ein Makro starten mit der Eingabe eines Wertes in einer Zelle

Guten Abend

Ich möchte einen Makro starten indem ich einen Wert in einer Zelle eingebe. Dieser Wert wird vom Makro als Parameter benützt. Kann mir jemand erklären wie so etwas sich machen lässt?

Vielen Dank für die geschätzte Hilfe.

Auditor 2019

Bonjour,

Merci de poster tes messages uniquement en français (car tu es ici sur un forum francophone).

Cordialement,

Bonjour,

tu dois pour cela utiliser une macro événementielle (à mettre dans le code de la feuille qui contient la cellule). exemple de macro qui est déclenchée par l'introduction d'une valeur en A1.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$A$1" Then
        macro Target.Value 'remplacer macro par le nom de la macro à exécuter
    End If
End Sub

Merci Sébastien et bin dimanche!

Hallo Sébastien

Mon macro fonctionne bien si je le lance depuis un module (Sub HexDesign()) . Par contre en mode "événement" il se bloque (voire code en rouge)??

Private Sub Worksheet_Change(ByVal Target As Range)

Dim hexaline(6) As Integer

Sheets("Hexas").Activate

'If Target.Address = "$e$17" Then

Range("e17").Select

Hexa = Target.Value

Sheets("BinaryCodes").Activate

Range("a" & Hexa + 1).Select (ici la procédure s'arrête, il n'arrive pas à trouver cette cellule??)

For i = 1 To 6

hexaline(i) = ActiveCell.Offset(0, i).Value

Next

Sheets("Hexas").Activate

Range("e13").Select

For i = 1 To 6

If hexaline(i) = 1 Then

ActiveCell.Interior.ColorIndex = 1

ActiveCell.Offset(0, 1).Interior.ColorIndex = 1

ActiveCell.Offset(0, 2).Interior.ColorIndex = 1

ActiveCell.Offset(-2, 0).Activate

Else

ActiveCell.Interior.ColorIndex = 1

ActiveCell.Offset(0, 1).Interior.ColorIndex = 0

ActiveCell.Offset(0, 2).Interior.ColorIndex = 1

ActiveCell.Offset(-2, 0).Activate

End If

Next

Range("e17").Select

'End If

End Sub

Peux-tu me donner un bon conseil?

Merci et bon dimanche

Auditeur2019

Bonjour,

proposition de correction

macro événementielle à mettre dans la feuille hexa

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim hexaline(6) As Integer

    If Target.Address = "$E$17" Then

        hexa = Target.Value

        macrohexa (hexa)

    End If
End Sub

macro à mettre dans un nouveau module

Sub macrohexa(hexa)
        Dim hexaline(6) As Integer
        Sheets("BinaryCodes").Select
        Range("A11").Select
        Range("A" & hexa + 1).Select

        For i = 1 To 6
            hexaline(i) = ActiveCell.Offset(0, i).Value
        Next
        Sheets("Hexas").Activate
        Range("e13").Select
        For i = 1 To 6
            If hexaline(i) = 1 Then
                ActiveCell.Interior.ColorIndex = 1
                ActiveCell.Offset(0, 1).Interior.ColorIndex = 1
                ActiveCell.Offset(0, 2).Interior.ColorIndex = 1
                ActiveCell.Offset(-2, 0).Activate
            Else
                ActiveCell.Interior.ColorIndex = 1
                ActiveCell.Offset(0, 1).Interior.ColorIndex = 0
                ActiveCell.Offset(0, 2).Interior.ColorIndex = 1
                ActiveCell.Offset(-2, 0).Activate
            End If
        Next
        Range("e17").Select
End Sub

Merci beaucoup...je vais m'y essayer

Bonjour h2S04

C'est excellent merci! Est-il possible de donner plusieurs dans la routine qui est appelée. Par exemple macrohexa(hexa,ligne)

et le paramétre ligne est utilisé dans Range("e" & ligne)? J'ai essayé mais je crois avoir commis une erreur, pas fonctionné!!

J'avais écrit

macroexa(hexa, ligne)

….

….

Range("e"&ligne)

….

….

End Sub

et ensuite

j'appelle

hexa= 24

ligne = 13

macrohexa(hexa, ligne)

Merci pour un bon conseil.

Auditeur19

Sub macrohexa(hexa)

Dim hexaline(6) As Integer

Sheets("BinaryCodes").Select

Range("A11").Select

Range("A" & hexa + 1).Select

For i = 1 To 6

hexaline(i) = ActiveCell.Offset(0, i).Value

Next

Sheets("Hexas").Activate

Range("e13").Select

Bonjour,

Je n'ai pas compris ta demande.

Mets-nous un fichier exemple avec ce que tu as comme données, le traitement que tu veux faire et le résultat que tu souhaites.

Rechercher des sujets similaires à "ein makro starten mit der eingabe eines wertes einer zelle"