es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Copiar las filas que contengan cierto valor y pegarlas en otra hoja.

Estoy tratando de crear una hoja que tenga una lista maestra de una base de datos y 8 ubicaciones diferentes.

Así que cada vez que envíe un formulario a la base de datos, quiero que mi código lea la ubicación HUB del formulario enviado y copie los detalles del formulario enviado en la hoja relevante. Esto es lo que tengo hasta ahora.

Básicamente, sería más fácil si describo el flujo:

  1. El usuario introduce los detalles relevantes.
  2. El formulario lo envía a la lista de la base de datos.
  3. El código luego ve para qué nodo central es y copia los detalles en la lista correspondiente, pero mantiene una copia en la lista maestra de la base de datos.

¿Espero que tenga sentido?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para llevar a cabo esta tarea, deberá agregar un script a su hoja de cálculo de Google. Esto es lo que el script debe hacer:

    1. Definir el rango donde se almacenarán los datos del formulario.
    2. Definir los rangos para cada una de las 8 hojas de ubicación.
    3. Determinar la ubicación de los datos del formulario (podría usar un menú desplegable o un campo específico).
    4. Copiar los datos de la respuesta del formulario a la hoja de ubicación relevante basada en la ubicación determinada.
    5. Copiar los datos a la hoja de maestros de la base de datos.

    Aquí hay un código de ejemplo que se puede utilizar para comenzar:

    function onFormSubmit(e) {
      var sheet = SpreadsheetApp.getActiveSheet();
      var range = sheet.getDataRange();
      var values = range.getValues();
    
      var hubLocation = ""; //esta debería ser la celda donde se almacena la ubicación
      var hub = sheet.getRange(hubLocation).getValue();
    
      var targetRange;
    
      // Determine el rango objetivo según el concentrador
      if(hub === "Ubicación 1"){
        targetRange = sheet.getRange("A1");
      } else if(hub === "Ubicación 2"){
        targetRange = sheet.getRange("A2");
      } // y así sucesivamente para cada una de las 8 hojas de ubicación
    
      // Copiar los datos al rango objetivo
      targetRange.setValue(e.values[0]); // Suponiendo que la primera celda del rango objetivo es donde desea copiar el primer punto de datos
    
      // Copiar los datos a la hoja de maestros de la base de datos
      var databaseSheet = SpreadsheetApp.openByUrl("https://suurldehojamaestradelabasededatos").getActiveSheet();
      var lastRow = databaseSheet.getLastRow();
      databaseSheet.getRange(lastRow + 1, 1, 1, values[0].length).setValues([values[0]]);
    }
    

    Este script utiliza el disparador onFormSubmit(), que se ejecuta automáticamente cuando se envía una nueva respuesta de formulario.

    Deberá modificar el script para que se adapte a sus necesidades específicas, incluyendo cambiar los rangos objetivos y determinar las ubicaciones de concentradores válidas.

    ¡Espero que esto ayude! Hágamelo saber si tiene alguna pregunta.

Comments are closed.