Aller au contenu

Excel incrementation par lettre et non pas par chiffre d'une formule.


Klaffh

Messages recommandés

Bonjour, 

J'ai deux fichiers Excel qui comportent un tableau.

Un est rédigé en ligne, l'autre en colonne.

J'ai besoin de faire une copie de cellule de l'un vers l'autre.

Pour ça je procede comme cela : Cellule = '[NomFichier.xls]Feuil1!Cellule

Si je tire, j'obtiens :

='[A.xls]F'!E3
='[A.xls]F'!E4
='[A.xls]F'!E5
...

Alors que je souhaiterai avoir :

='[A.xls]F'!E3
='[A.xls]F'!F3
='[A.xls]F'!G3
...

Si vous avez une solution, je suis preneur.
D'avance merci.

Modifié par Klaffh
Lien vers le commentaire
Partager sur d’autres sites

Si c'est un copier/coller "one shot" tu peux faire un collage spécial avec transposition.

Sinon, avec des formules tu vas pouvoir le faire avec les fonctions COLUMN(), ROW(), ADRESS(), INDIRECT() (il y a peut-être plus simple...)

Edit : la fonctions INDEX() peut remplacer INDIRECT(ADRESS())

Modifié par pehache
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Pour ceux que ça peut intéresser.

J'ai opté pour une solution la plus simple d'après mes connaissances.

La problématique :

J'ai deux tableau excel, un Source l'autre Destination.

Destination doit récupérer des infos de Source pour être simplifié afin d'être envoyé à un comptable pour qu'il ait les informations nécessaires pour rédiger les fiches de paye.

Source est rédiger en colonne
Destination en ligne.

 

Sous Office, pour ne pas avoir les liens rompu entre MacOS et Windows, cela devenait difficile.
De plus, je n'avais pas envie de me prendre la tête à apprendre des choses qui ne me serviront plus par la suite.

Du coup, Je suis passé par google Sheets, où j'ai importé Source et Destination.

 

Grace à un Batch en Java, j'ai générer mon code et l'ai collé colonne par colonne.

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int cellule = 22;
		
		for (char alphabet = 'E'; alphabet <= 'Z'; alphabet++) {
			System.out.println("=IMPORTRANGE(\"monChenminDeMonFichierSource\";\"F!" + alphabet + cellule +"\")");
		}
  		for (char alphabet = 'A'; alphabet <= 'Z'; alphabet++) {
			System.out.println("=IMPORTRANGE(\"monChenminDeMonFichierSource\";\"F!A" + alphabet + cellule +"\")");
		}
}

J'aurai pu via la lib jxl.jar écrit dans Destination, utiliser un tableau pour les index de cellule et certainement imbriqué mes 2 boucles pour avoir E22 à AZ22.
Mais bon pour un one shoot, j'ai préférer procéder comme ça.

 

Maintenant, ma nièce n'a plus qu'à exporté de son logiciel de planning le ficher excel Source.

L'ouvrir, faire un ctrl + A (Tout sélectionner) ctrl + C (Copier)

Ouvrir l'onglet Source Google Sheets, faire un ctrl + A, Supprimer et ctrl + V (Coller)
Ouvrir l'onglet Destination Google Sheets, faire menu "Fichier / Télécharger au format / Microsoft Excel"

Puis joindre Destination à son mail pour le comptable.

 

P.S : Si vous pouvez me dire comment je peux rajouter [Résolu] dans le titre.
Merci.

Modifié par Klaffh
Lien vers le commentaire
Partager sur d’autres sites

Entre mes connaissances

il y a une heure, Klaffh a dit :

plus simple d'après mes connaissances

et ma fainéantise.

Et qu'il y a des tiers qui utilisent ces fichiers.

Du coup, la manip fait gagné bcp de temps à ma nièce et excel ne parle pas de liaison brisé à l'ouverture, car les fichiers ne sont plus liés.

Lien vers le commentaire
Partager sur d’autres sites

Oui, je sais j'en avais parlé sur mon post du 4/07

Le 04/07/2018 à 16:06, Klaffh a dit :

Merci, je vais voir avec une version plus récente, sous Office 365, il y a une fonction Transpose (rotate) qui permet de le faire.

Pour mac Transpose (rotate) 

Au final, j'ai pas les bonnes versions du pack Office et je donne pas mes infos de CB pour télécharger une version d'essaie.

Lien vers le commentaire
Partager sur d’autres sites

Oui, effectivement.
Le problèmes, c'est que le copier / coller et à faire tout les mois.

Avec ma méthode, je peux changer une valeur de Source pour qu'il soit reporté dans Destination.

Puisque j'ai en ligne 2 de Destination j'ai en A;B;C;....

Ligne2 ='[Source.xls]F'!E3;2;27;28;17;18;22;21;23
Ligne3 ='[Source.xls]F'!F3;2;27;28;17;18;22;21;23
Ligne2 ='[Source.xls]F'!G3;2;27;28;17;18;22;21;23

Avec devant chaque ";" le préfixe en rouge.

Comme la structure de Source et Destination sont fixe.
En collant, tout les mois les valeurs de l'export de Source dans son Google Sheet, on obtient le remplissage de Destination de Google Sheet.

Lien vers le commentaire
Partager sur d’autres sites

Oui le copié/collé est à faire tous les mois avec ma solution, mais avec la tienne aussi ! Et même pire puisque tu dois faire un copié-collé vers Google Sheet, exécuter une macro, et refaire un copié-collé vers Excel: 3 fois plus de manips pour faire (il me semble) la même chose. Sans compter l’écriture de la macro au départ.

Lien vers le commentaire
Partager sur d’autres sites

j'avais à la basse tout fait en excel, la chose qui n'allait pas était que Destination.xls parlait de problèmes de liaisons qui nous proposait de réparer.
Même si il n'y avait pas d'impact en cliquant sur ignorer.

A l'époque, j'avais utilisé mon Batch que j'ai du exécuter 9 fois pour changer le numero de cellule.

Tout sélectionner le résultat, le copier pour le coller dans la cellule adéquate de Destination.

A savoir coller en A2 qd int cellule = 3
                coller en B2 qd int cellule = 2

Et ainsi de suite.

 

Modifié par Klaffh
Lien vers le commentaire
Partager sur d’autres sites

Il y a 22 heures, Klaffh a dit :

Maintenant, ma nièce n'a plus qu'à exporté de son logiciel de planning le ficher excel Source.

L'ouvrir, faire un ctrl + A (Tout sélectionner) ctrl + C (Copier)

Ouvrir l'onglet Source Google Sheets, faire un ctrl + A, Supprimer et ctrl + V (Coller)
Ouvrir l'onglet Destination Google Sheets, faire menu "Fichier / Télécharger au format / Microsoft Excel"

Puis joindre Destination à son mail pour le comptable.

L'utilisation se résume à ça.
Avec ctrl à remplacer par Pomme.

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Klaffh a dit :

L'utilisation se résume à ça.
Avec ctrl à remplacer par Pomme.

C’est à dire 3 fois plus de manips que le copié-collé spécial en restant dans Excel.

Lien vers le commentaire
Partager sur d’autres sites

Y a sur un point où je dois pas être clair.

Avec ta méthode et sous excel 2008 ça fonction effectivement.

Je peux sélectionner mes lignes 3; 2 ; 27; 28; 17; 18; 22; 21; 23 de mon fichier Source. (Sauf que la structure de Destination a été demandé par la comptable et que les colonnes ont un nom un peut différent et qu'il vaut mieux les remettre par la suite.)
et les 
coller en dans les colonnes A;B;C;D;E;F;G;H;I.

Sauf que je me retrouve avec une correspondance SourceN°Ligne DestinationLettreColonne A2;B3;C17;D18;E21;F22;G23;H27;I28
Pour infos Source fait 106 lignes.

Et Qu'il faut que j'ai A3; B2 ; C27; D28; E17; F18; G22; H21; I23

Donc je dois après Couper et insérer la sélection à sa bonne place.

Cette méthode ne sera pas utilisé par ma nièce, je la connais car elle risque de galèrer et de me redemander tout les mois.

Avec ce que j'ai fait elle a son fichier Source qui est une extraction de son logiciel de planning, elle le faisait fait et fera tt les mois.
Elle doit demander au développeur d'ajouter l'exportation des dates Congés Payés et Arrêt Maladie, car ils sont été oublié et qu'elle ne peut pas choisir les lignes qu'elle souhaite exporter.

D'ailleurs la méthode la plus simple serai qu'elle donne le modèle du comptable au développeur et qu'il lui rajout un bouton export paye. 

Une fois qu'elle a terminé d'ajouter les dates, il faut qu'elle sélectionne tout son tableau et le copie.
Pour le coller dans son homologue Google Sheets Source.
Pour être sur de ne pas conserver des infos erronées (cas d'un mois avec 19 salariés et le mois d'après 18).

Je lui ai dit tu sélectionnes tout ton tableau tu supprimes (bouton suppr ou fn + del) son contenu et tu colles les informations.
Comme par magie l'onglet Google Sheets Destination se met à jour avec les infos qu'elle vient de coller dans Source.

Après je dis pas que c'est la meilleurs méthodes qu'il existe, mais j'ai pu la mettre en place un matin le temps de boire mon mug de café.

Alors que sous Excel avec le nom de Source avec une date dans son nom ainsi que dans le feuillet au format MM-AAAA.
Même avec la concaténation, j'arrivé pas à faire ce que je voulais, à savoir ='[MonFichier - DeMonMagazin - DeMaVille - mm-aaaa.xls]recap-etat-mm-aaaa'!E3

Et sous Google Sheet, si j'importe le fichier Source le fait que ce ne soit pas le même, même si c'est le même nom, google te modifie la partie de l'url "

monChenminDeMonFichierSource qui resemble à 45Aer2HJUopeu6gU56mpf23 en plus long


En gros, j'ai mis 15 à 30 min pour tout mettre en place, 2 mins pour lui expliquer et elle a mis 20 à 30s pour l'appliquer.
Et elle devrait s'en souvenir d'un mois à l'autre.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...