Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB Colonne ligne

6 réponses
Avatar
jp
Bonjour,
Je n'arrive pas à sommer des valeurs dans une cellule (ligne, colonne) qui
correspond à des valeurs dans une autre feuille, soit :

- feuille "données" un fichier avec une adresse et une valeur à chaque
référence, ex : L1D03 et 50
- feuille "MAP" un tableau avec des colonnes nommées (3 premiers caractères
de l'adresse) et lignes ( 2 derniers caractères de l'adresse)

L1D L2D L3D ....
02
03
04
..

J'essaie la manip ci-dessous, mais je n'arrive pas à sommer dans la feuille
"MAP" je suis assez novice dans les colonnes et lignes

Sheets("Données").Select
Set flux = Worksheets("Données").Cells(i, 20)
lieu = Left(Cells(i, 15), 1)
colonne = Left(Cells(i, 15), 3)
ligne = Right(Worksheets("Données").Cells(i, 15), 2)
If lieu <> "S" Then GoTo suite
Sheets("Map").Select
Worksheets("Map").Cells(ligne + 3, colonne).Select
................

Si quelqu'un peut m'aider SvP
merci
JP

6 réponses

Avatar
Maxence HUBICHE
bonjour

Rien compris
Ni à l'énoncé du problème, ni au rapport avec le code

Par exemple
tu parles d'adresse L1D03 ... jamais vu une adresse pareille ! A la limite L1C3, oui, mais L1D03, vraiment, ça ne me dit rien du tout !
Tu parles de la ligne 03 .... euh ! pourquoi pas la ligne 3 ? une ligne, c'est un numéro, et un numéro qui commence par 0 ..
Tu montre un code qui utilise un i et des colonnes figées (15, 20, ...) mais tu ne nous dis pas grand chose sur l'objet de ton code, alors pour le décoder, c'est pas forcément très facile ;

Voilà
Dans l'attente d'éclaircissements de ta part :))
Avatar
AV
Sous réserve de bonne compréhension (douteux)
En feuille "données" tu as :
- une plage A2:Ax (nommée "adresse") contenant des valeurs du type :
L1Dxx;L1Dxx;L2Dxx;L3Dxx.etc
- une plage B2:Bx (nommée "valeur") contenant des valeurs numériques
En feuille "MAP"
- en A1 :L1D
- en B1 : L2D
- en C1 : L3D
---- etc ---
Tu veux obtenir la somme des valeurs correspondant à L1D; L2D...LxD
- En A2 et recopie --> XX2
=SOMMEPROD((GAUCHE(Adresse;3)¡)*(Valeur))

AV
Avatar
jp
Bonjour,

L1D n'a rien avoir avec des coordonnées habituelles d'Excel, ça correspond à
endroit sur le schéma de la feuille "MAP" (info dans une cellule
correspondant à la colonne) et 03 info dans une cellule correspondant à la
ligne sur le schéma de la feuille "MAP"

Feuille "données" : (je mets une virgule juste pour expliquer et simuler
les cellules différentes de la feuille Excel)
Ref, adresse, flux
R1, L1G01, 5
R2, L1G01, 5
R3, L2G01, 60
R4, L1D03, 10
R5, L1D03, 40
R6, L2G02, 45
R7, L2G02, 10 ....................

Feuille "MAP" : récupère la somme des flux, type tableau croisé mais sur un
schéma
L1G L1D L2G L2G L3G L3D
01 10 60
02 80 55 80
03 40 50
04
05

C'est difficile d'expliquer plus clairement.
Merci :-)
JP

"Maxence HUBICHE" a écrit dans le message de
news:
bonjour,

Rien compris.
Ni à l'énoncé du problème, ni au rapport avec le code.

Par exemple :
tu parles d'adresse L1D03 ... jamais vu une adresse pareille ! A la limite
L1C3, oui, mais L1D03, vraiment, ça ne me dit rien du tout !!

Tu parles de la ligne 03 .... euh ! pourquoi pas la ligne 3 ? une ligne,
c'est un numéro, et un numéro qui commence par 0 ...

Tu montre un code qui utilise un i et des colonnes figées (15, 20, ...)
mais tu ne nous dis pas grand chose sur l'objet de ton code, alors pour le

décoder, c'est pas forcément très facile ;)

Voilà,
Dans l'attente d'éclaircissements de ta part :))


Avatar
Maxence HUBICHE
Aaaah OK !

Alors moi, je travaillerai en 2 étapes :
1/ dans la feuille donnees, je rajouterai 2 colonnes correspondant à l'extraction de tes cardinalités
Une nouvelle colonne avec =GAUCHE(xx;3) =>Colonne C dans l'exemple
Une Nouvelle colonne avec =DROITE(xx;2) =>Colonne L dans l'exemple
ce qui donnerait le tableau suivant :
Ref Adresse Flux C L
R1 L1G01 5 L1G 01
R2 L1G01 5 L1G 01
R3 L2G01 60 L2G 01
R4 L1D03 10 L1D 03
R5 L1D03 40 L1D 03
R6 L2G02 45 L2G 02
R7 L2G02 10 L2G 02

2/ je réaliserai soit un tableau croisé dynamique, soit une table d'hypothèses basé sur cette nouvelle table
Avatar
AV
C'est difficile d'expliquer plus clairement.
C'est bcp mieux que précédemment !


Merci :-)
Mais il faut pas !


Avec plages nommées ("Adresse" et "Flux")
Dans la feuille MAP :
- A2:Ax (au format texte) : 01; 02; 03; ..99
- en B1:xxx1 : L1G;L1D;L2G;L3G....
- en B2 et recopie vers droite --> xx2 et recopie vers bas --> xxX
=SI(SOMMEPROD((GAUCHE(Adresse;3)=B$1)*(DROITE(Adresse;2)=$A2)*Flux)=0;"";SOMMEPR
OD((GAUCHE(Adresse;3)=B$1)*(DROITE(Adresse;2)=$A2)*Flux))

PS : Avec les valeurs forunies, les résultats que tu attends ne semblent pas
tout à fait correspondrent !
AV

Avatar
jp
Je souhaitais savoir rechercher dans quelle colonne de "MAP" se trouvait
L1G, L2G ... pour y sommer les flux provenant de la feuille "données" et
l'écrire dans la macro
Worksheets("Map").Cells(ligne + 3, colonne).Select ?????????
ça marche pas

merci quand même
JP

"Maxence HUBICHE" a écrit dans le
message de news:
Aaaah OK !

Alors moi, je travaillerai en 2 étapes :
1/ dans la feuille donnees, je rajouterai 2 colonnes correspondant à
l'extraction de tes cardinalités

Une nouvelle colonne avec =GAUCHE(xx;3) =>Colonne C dans l'exemple
Une Nouvelle colonne avec =DROITE(xx;2) =>Colonne L dans l'exemple
ce qui donnerait le tableau suivant :
Ref Adresse Flux C L
R1 L1G01 5 L1G 01
R2 L1G01 5 L1G 01
R3 L2G01 60 L2G 01
R4 L1D03 10 L1D 03
R5 L1D03 40 L1D 03
R6 L2G02 45 L2G 02
R7 L2G02 10 L2G 02

2/ je réaliserai soit un tableau croisé dynamique, soit une table
d'hypothèses basé sur cette nouvelle table