Copier coller automatique avec lien depuis un onglet sur un autre

Bonjour,

J'utilise Google Spreadsheets depuis plusieurs années, et j'essaye d'améliorer mon utilisation selon les nouveautés de cet outil.

Je sais faire un copier coller d'une ligne depuis un onglet vers un autre en conservant les liens.

Mais je souhaite automatiser cette opération. Dois passer par une macro ?

La caractéristique de la ligne copiée, est qu'elle sera toujours composée du même nombre de colonnes.

La destination est un onglet uniquement dédié à recevoir ces lignes dans un tableau.

Ma deuxième question est lors de la copie sur cet onglet, est -il possible de coller la ligne sous la dernière ligne existante du tableau ?

Merci pour votre aide

J'avance sur ce projet.

J'ai choisi de partir depuis l'onglet de destination avec une formule ={ depuis ma cellule en haut `gauche, puis je vais couvrir sur l'onglet des lignes à copier la plage qui m'intéresse d'importer.

Ensuite pour importer d'autre zones d'autres onglets, je rajoute manuellement l'adresse de la tranche à importer dans la formule de l'onglet de destination.

Je pense pouvoir ensuite automatiser de nouvelles importations d'autres onglets avec une macro ?
J'ai aussi le besoin de masquer des lignes selon condition. Il me semble que c'est possible aussi.

Suis je sur la bonne voie ? est-ce le plus simple ?

Bonjour,

Une fonction App Script

function copie_colle(){
  const s = SpreadsheetApp.getActiveSpreadsheet();
  const depart = s.getSheetByName("Nom_feuille_ou_sont_valeur");
  const destination = s.getSheetByName("Feuille_destine_au_ligne");
  var lignes = destination.getRange("A1:A1000").getValues();
  var n = 0;
  for(i=0;i<ligne.length;i++){
    if(lignes[i] != ""){
      n++
    }
  }
  var nombre_colonnes = ;//Nombre de colonne
  destination.getRange(n,1,1,nombre_colonnes).setValues(depart.getRange("plage").getValues())
}

Bonne Journée

Bonjour,

Je sais faire un copier coller d'une ligne depuis un onglet vers un autre en conservant les liens.

Mais je souhaite automatiser cette opération. Dois passer par une macro ?

tu souhaites conserver les liens, ok, mais in fine j'aimerais bien savoir dans quel but, quelle utilisation en fais-tu ? si c'est ensuite pour ajouter des informatjons, il est probable alors qu'un tri ou une suppression de ligne entrave ensuite la bonne marche

la méthode la plus simple et la plus radicale est d'utiliser query

=query(maFeuille!A:Z;"select *")

mais je doute qu'elle convienne, faudrait mieux appréhender son utilisation !

Bonjour et merci pour vos réponses.

Mon utilisation est de rassembler des paiements à effectuer depuis plusieurs onglets clients, vers un onglet paiement.

Chaque onglet client à une plage de paiements sur plusieurs lignes et colonnes. Les colonnes sont toujours les mèmes, par contre la première ligne et le nombre de ligne ne le sont pas. Exemple, depuis l'onglet client Pierre je peux avoir une plage N25 Z35, et le client Jean une plage N30 Z45.

L'onglet paiement ne sera jamais modifié. Il sera actualisé selon modif sur les onglets d'origine en lien, et j'espere pouvoir sur l'onglet paiement ordonner (selon date) et masquer des lignes selon des contenus dans les cellules (payé et pas payé).

Donc voici une solution sur 6 colonnes (A à F) et 3 onglets -codification FR-

={
QUERY('onglet1'!A2:F; "SELECT * where not F like '' ");
QUERY('onglet2'!A2:F; "SELECT * where not F like '' ");
QUERY('onglet3'!A2:F; "SELECT * where not F like '' ")
}

autre exemple en ajoutant le nom de l'onglet en première colonne

=QUERY({
ARRAYFORMULA({IF(ISBLANK('onglet1'!A2:A);;"onglet1") \'onglet1'!A2:E});
ARRAYFORMULA({IF(ISBLANK('onglet2'!A2:A);;"onglet2") \'onglet2'!A2:E});
ARRAYFORMULA({IF(ISBLANK('onglet3'!A2:A);;"onglet3") \'onglet3'!A2:E})
};"select * where Col1 <> '' order by Col2")

@ImoKa, si je peux me permettre,

En utilisant

destination.getRange(n,1,1,nombre_colonnes).setValues(depart.getRange("plage").getValues())

tu mets les valeurs en dur, donc tu romps le lien que demande yannchile entre les onglets

Par ailleurs, tu figes à 1000 les lignes (il peut y en avoir davantage), puis tu les comptes sans imaginer qu'il puisse en avoir des blanches au milieu. Utilise plmutôt getLastRow() ou getDataRange()

Bonjour,

Merci à tous pour votre aide.
Ca m'a permit de d'avancer grandement.

J'ai mis en place cette formule depuis la feuille destination

=sort({QUERY('client pierre'!N132:AC168; "SELECT * where N is not null ");QUERY('client paul'!N196:AC237; "SELECT * where N is not null ")};1;1;16;0)

Du coup j’insère manuellement la nouvelle plage a rapatrier depuis une nouvelle feuille. Je pense qu'il sera difficile d'automatiser cette procédure.

J'ai juste un détail à l'importation, c'est que les liens cliquables disparaissent si ils ne sont pas directement sous forme d'une adresse http://

Rechercher des sujets similaires à "copier coller automatique lien onglet"