Jump to content
Klaffh

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

Recommended Posts

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.

Edited by Klaffh

Share this post


Link to post
Share on other 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())

Edited by pehache

Share this post


Link to post
Share on other sites

Tu peux essayer de tirer vers la droite, cela incrémentera les lettres mais pas les chiffres. Et ensuite insérer ta formule

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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.

Edited by Klaffh

Share this post


Link to post
Share on other sites

Je ne perçois pas bien la simplicité, là... 

Share this post


Link to post
Share on other sites

Je ne perçois pas bien la simplicité, là... 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Ben « collage spécial » avec transposition répondait exactement au besoin dans ce cas, en 3 clics.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Non je parle tout simplement du copier/collage spécial qui existe depuis la nuit des  temps sur Excel 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

 

Edited by Klaffh

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites
Le 06/08/2018 à 12:32, Klaffh a dit :

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

pas qu'un je pense...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×