input: Write a function to find the maximum value within a nested dictionary. If the dictionary is empty or there are no numeric values, return `None`.
  
  def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val, key=lambda x: x if x is not None else float('-inf'))
          else:
              max_val = max(value, max_val, key=lambda x: x if x is not None else float('-inf'))
      return max_val
  
  assert findMaxValue({
      "key1": {
          "value1": 10,
          "value2": 20
      },
      "key2": {
          "value3": 40
      },
  })==40
  
  assert findMaxValue({
      "key1": {
          "value1": 5,
          "value2": 3
      },
      "key2": {
          "value3": 1,
          "value4": {
              "value5": 100,
              "value6": 200
          }
      },
  })==200
  
  assert findMaxValue({})==None
  
  assert findMaxValue({
      "key1": {
          "value1": "not a number",
          "value2": "also not a number"
      }
  })==None
output: def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              nested_max = findMaxValue(value)
              if nested_max is not None:
                  if max_val is None or nested_max > max_val:
                      max_val = nested_max
          elif isinstance(value, (int, float)):
              if max_val is None or value > max_val:
                  max_val = value
      return max_val