Pages

Affichage des articles dont le libellé est colonnes. Afficher tous les articles
Affichage des articles dont le libellé est colonnes. Afficher tous les articles

XL 2010 renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes sujet

mardi 8 avril 2014




Bonjour,

J'ai 2 fichiers, mes 2 fichiers ont dans leur première colonne des références identiques.

Dans le tableau1 du fichier1, il y à 5 colonnes avec des dates.
Dans mon tableau2 du fichier2 je souhaite rechercher la ligne de ma référence dans le tableau1 et renvoyer la date max des 5 colonnes correspondantes.

rechercher le max à la limite je sais faire ça : "=MAX(fichier2.xlsx!Tableau2[@[debut]:[fin]])"
mais ça me renvois le max de la colonne debut à fin pour le même numéro de ligne sur laquelle je suis dans mon fichier1

Comment faire !!??????!!!




[XL-2013] Sélectionner plusieurs colonnes d'un tableau sujet

vendredi 28 mars 2014




Bonjour,
Je n'arrive pas à sélectionner plusieurs colonnes d'un tableau "Listobject". La formule suivante fonctionne pour sélectionner 1 seule colonne mais je ne sais pas comment en sélectionner plusieurs avec le même code.

NomTableau = "Tableau41"
Sheets("Feuil1").ListObjects(NomTableau).Range.Columns(3).Select

Comme la variable NomTableau Change plusieurs fois dans le code, je dois utiliser une formule du genre. Quelqu'un peut m'aider s.v.p? Je suis sûr que je ne suis pas loin mais je n'arrive pas à trouver:(




Trigger pour fusionner et écrire 2 colonnes de la ligne en cours sujet

samedi 1 février 2014




Voilà,

j'utilise une station météo qui stocke les données dans une mysql.

J'ai donc une table appelée Meteo qui contient les colonnes suivantes (enfin, je ne recopie ici que les 3 premieres)

Code:


date                time                temperature
2014-02-01        17:07:00        4.2


Ma problématique est que je veux utiliser un deuxieme logiciel pour générer des graphiques qui viendrait donc piocher dans cette base de données.
Hors ce dernier n'arrive pas à reconnaitre le format date / heure de mysql.

Au lieu d'un champ date et d'un champ heure, ce programme souhaite un champ unique de la forme YYYYMMDDhhmmss

Au niveau du premier logiciel, je ne peux modifier sa façon dont il vient écrire la date et l'heure dans la base de données.


C'est là où je patauge, car je ne maitrise pas SQL....


La solution passerai par une colonne supplémentaire avec la date/heure au bon format (ex: 20140201183000)

J'ai donc ajouter une colonne supplémentaire nommée "datetime2"
Dans un premier temps, j'ai essayé un trigger qui va remplir cette nouvelle colonne à l'écriture des données.

Le Trigger utilisé:

Code:


DELIMITER //
DROP TRIGGER IF EXISTS `Test_insert_trigger`//
CREATE TRIGGER `Test_insert_trigger`
BEFORE INSERT ON `Meteo`
FOR EACH ROW
BEGIN
IF NEW.datetime2 = '0000-00-00 00:00:00' THEN
SET NEW.datetime2 = NOW();
END IF;
END;//


=> 2 problemes:
Le format de date n'est pas bon mais surtout, le plus important est qu'il note la date/heure du moment où la ligne s'écrit.
Dans mon cas ce n'est pas bon car il m'arrive d'injecter des données en retard. Elles ne seront donc pas horodaté correctement.


L'idéal est donc que je parte des deux premieres colonnes (date et time) pour en faire une seule.

J'ai fait cela:

Code:


SELECT CONCAT(YEAR(date),MONTH(date),DAY(date),HOUR(time),MINUTE(time),SECOND(time)) FROM Meteo

Avec pour but de l'inserer dans le trigger.

Le probleme est que cela fonctionne bien sur une ligne existante mais comment le faire sur une ligne en cours d'écriture ?

L'idéal serait que le trigger, à l'écriture de la ligne, recupere la date et l'heure des deux premieres colonnes pour ensuite venir l'ajouter en fin de ligne à la derniere colonne sous un format YYYYDDMMhhmmss.


Quel serait la solution à cette problématique ?

Merci beaucoup...




[MySQL-5.5] SHOW colonnes d'une requête sujet

vendredi 31 janvier 2014




Bonjour à toutes Zé tous,

J'ai une requête dont le nombre de SELECT est long comme un jour sans pain !
Elle extrait des données misent dans un fichier pour transmettre à mes camarades de jeux ...

Pour leur donner le design de chaque colonne, j'aurais voulu faire quelque chose comme

Code:


SHOW SELECT s1,s2,...,sn
FROM t1
INER JOIN t2 on t1.id=t2.id
WHERE s1 = 'la mer'


Et ça veut pas ! Étonnant non ? :D

Bien sur un SHOW t1 ... montre tout mais de toute les colonnes d'une table et pas des champs selectionné dans plusieurs tables en même temps ...

Quelqu'un a-t-il déjà résolu (contourné ?) ce problème ?

Merci d'avoir lu jusque là et toute ma reconnaissance à celui qui m'évitera le copier/coller de 127 champs !! :cry:




XL 2010 Mettre des colonnes en couleur en fonction de leur entête sujet

jeudi 30 janvier 2014




Bonjour,
J'ai un tableau excel (2010) ayant comme tires de colonnes les jours à partir d'aujourd'hui et sur les 3 prochains mois. Ce qui veut dire que les titres de colonnes évoluent chaque jour. Je souhaiterais que les colonnes de mon tableau adoptent une couleur spécifique en fonction du mois indiqué dans le titre de la colonne (colonne bleue si c'est un jour de février, rouge si c'est un jour de mars ...). Le cellules de mon tableau ne doivent rien contenir qui empêche la saisie d'autre information (par exemple si je veux écrire RDV dans une cellule je dois pouvoir l'écrire sans que ça influe sir la mise en forme). Je suis allé voir dans les mise en formes conditionnelles mais je n'ai pas réussi à le faire. J'ai créé un tableau sur une autre feuille reprenant le même nombre de lignes et de colonnes et avec des fonctions Si(Et()) imbriquées j'ai réussi à faire écrire dans les cellules si elle correspondaient au mois de mars, de janvier , de septembre. Mais je ne sais pas si il est possible de faire une mise en forme conditionnelle avec liaison (comme les calculs avec liaison) ou bien si ce tableau secondaire peut m'être utile d'une façon quelconque .
Je souhaiterais éviter les macros car je n'y comprends rien et ce que je fais doit rester abordable et compréhensible par l'utilisation de notions "classiques" de excel pour pouvoir le présenter à des gens utilisant déjà ces fonctions classique (c'est à dire tout sauf la programmation et les macros). Comme vous l'avez vu je suis prêt à utiliser des moyens détournés pour ce faire.
Merci d'avance




[XSL-FO] Header de colonnes de fo:region-body sujet




Bonjour à tous,

J'ai actuellement un fo:region-body déclaré comme ceci:


Code:


<fo:region-body column-count="2"
    margin-left="1.2cm"
    margin-right="1.3cm"
    margin-top="1.5cm"
    margin-bottom="4.2cm"/>


Je spécifie donc bien 2 colonnes. Jusqu'ici tout va bien, mon texte s'affiche bien sur 2 colonnes. Mon texte se compose en gros comme une suite de titre de rubrique et contenu.

J'aimerai, à chaque début de colonne du region-body, rappeler le titre de la rubrique "en cours".

Je sais pas si je suis très clair, mais existe-t-il un moyen de faire ça?

Merci beaucoup




XL 2010 Fusion de lignes si doublon de certaines colonnes sujet




Bonjour à tous,

J'ai bien cherché sur tout le forum et malgré une profusion de fils très intéressants je n'arrive pas à trouver mon bonheur. Je me lance donc en tant que nouveau, d'autant qu'à priori la solution est une macro et je n'y connais rien!

J'ai sur une feuille une liste de données correspondant à un portefeuille de brevets.
Ce tableau est issue d'un export d'un logiciel spécifique.
Chaque ligne correspond à un brevet.
Le problème c'est que dans ce tableau il existe de nombreux doublons avec une seule modification: le numéro de brevet.
En effet, chaque pays protégé pour une même invention aura une référence différente.
Ces doublons sont identifiables via leur numéro de priorité identique ou la référence.

Je souhaiterai fusionner ces doublons et "concaténer" la variable (numéro de brevet) dans une même cellule avec une séparation par point virgule afin d'utiliser ce tableau dans un outil de cartographie. Il ne devrait alors y avoir plus qu'une ligne correspondant à une invention.

Le fil le plus proche me semble être celui-ci.
Mais les variables sont dans des colonnes distinctes alors quelles sont dans la même dans mon cas. De plus le résultats doit nécessairement être comme dans l'exemple pour que je puisse l'analyser par la suite.
Evidemment mon tableau a un petit millier de lignes ;)

Ci-dessous un fichier explicatif.

Merci d'avance aux généreux!













Fichiers attachés








créer des Colonnes à partir des lignes sujet

mercredi 29 janvier 2014




bonjour à tous ,
je rencontre un petit soucis sur cette longue requête..

j'ai besoin de créer des colonnes à partir des lignes d'un tableau (boucle)... le principe décrit dans ce code ci-dessous marche mais pour la première incrémentation seulement ... j'arrive pas à trouver le pb avec la boucle ... sachant que le message d'erreur indique ceci :

" Niveau*15, État*1, Ligne*1
Il y a plus de colonnes dans l'instruction INSERT que de valeurs spécifiées dans la clause VALUES. Le nombre de valeurs de la clause VALUES doit être le même que le nombre de colonnes de l'instruction INSERT.
Msg*109, Niveau*15, État*1, Ligne*1
Il y a plus de colonnes dans l'instruction INSERT que de valeurs spécifiées dans la clause VALUES. Le nombre de valeurs de la clause VALUES doit être le même que le nombre de colonnes de l'instruction INSERT.
Msg*109, Niveau*15, État*1, Ligne*1
Il y a plus de colonnes dans l'instruction INSERT que de valeurs spécifiées dans la clause VALUES. Le nombre de valeurs de la clause VALUES doit être le même que le nombre de colonnes de l'instruction INSERT.

(0*ligne(s) affectée(s))"""""""


voila la requête :

/*déclaration d'une table temporaire*/
create table tempo(
sContact_vo_email nvarchar(255),tsLastModif datetime,
iCounty_vo_1 varchar,iCounty_vo_2 varchar/*,iCounty_vo_3 varchar,iCounty_vo_4 varchar,iCounty_vo_5 varchar,iCounty_vo_6 varchar,iCounty_vo_7 varchar,iCounty_vo_8 varchar,iCounty_vo_9 varchar*/,
iMileage_vo_1 varchar,iMileage_vo_2 varchar/*,iMileage_vo_3 varchar,iMileage_vo_4 varchar,iMileage_vo_5 varchar,iMileage_vo_6 varchar,iMileage_vo_7 varchar,iMileage_vo_8 varchar,iMileage_vo_9 varchar*/,
tsCreation datetime,
iPrice_vo_1 int,iPrice_vo_2 int/*,iPrice_vo_3 int,iPrice_vo_4 int,iPrice_vo_5 int,iPrice_vo_6 int,iPrice_vo_7 int,iPrice_vo_8 int,iPrice_vo_9 int*/,
iModel_year_vo_1 int,iModel_year_vo_2 int/*,iModel_year_vo_3 int,iModel_year_vo_4 int,iModel_year_vo_5 int,iModel_year_vo_6 int,iModel_year_vo_7 int,iModel_year_vo_8 int,iModel_year_vo_9 int*/,
sBrand_vo_1 nvarchar(255), sBrand_vo_2 nvarchar(255)/*,sBrand_vo_3 nvarchar(255),sBrand_vo_4 nvarchar(255),sBrand_vo_5 nvarchar(255),sBrand_vo_6 nvarchar(255),sBrand_vo_7 nvarchar(255),sBrand_vo_8 nvarchar(255),sBrand_vo_9 nvarchar(255)*/,
sDetail_url_vo_1 nvarchar(255),sDetail_url_vo_2 nvarchar(255)/*,sDetail_url_vo_3 nvarchar(255),sDetail_url_vo_4 nvarchar(255),sDetail_url_vo_5 nvarchar(255),sDetail_url_vo_6 nvarchar(255),sDetail_url_vo_7 nvarchar(255),sDetail_url_vo_8 nvarchar(255),sDetail_url_vo_9 nvarchar(255)*/,
sModel_name_vo_1 nvarchar(255),sModel_name_vo_2 nvarchar(255)/*,sModel_name_vo_3 nvarchar(255),sModel_name_vo_4 nvarchar(255),sModel_name_vo_5 nvarchar(255),sModel_name_vo_6 nvarchar(255),sModel_name_vo_7 nvarchar(255),sModel_name_vo_8 nvarchar(255),sModel_name_vo_9 nvarchar(255)*/,
sThumbnail_url_vo_1 nvarchar(255),sThumbnail_url_vo_2 nvarchar(255)/*,sThumbnail_url_vo_3 nvarchar(255),sThumbnail_url_vo_4 nvarchar(255),sThumbnail_url_vo_5 nvarchar(255),sThumbnail_url_vo_6 nvarchar(255),sThumbnail_url_vo_7 nvarchar(255),sThumbnail_url_vo_8 nvarchar(255),sThumbnail_url_vo_9 nvarchar(255)*/,
sUnsubscribe_url_vo_1 datetime,sUnsubscribe_url_vo_2 datetime/*,sUnsubscribe_url_vo_3 datetime,sUnsubscribe_url_vo_4 datetime,sUnsubscribe_url_vo_5 datetime,sUnsubscribe_url_vo_6 datetime,sUnsubscribe_url_vo_7 datetime,sUnsubscribe_url_vo_8 datetime,sUnsubscribe_url_vo_9 datetime*/,
tsDate_vo datetime,
sAlert_name_vo_1 nvarchar(255),sAlert_name_vo_2 nvarchar(255),/*pour tester si on doit le faire sortir de la boucle si tout marche , sAlert_name_vo_2 nvarchar(255),sAlert_name_vo_3 nvarchar(255),sAlert_name_vo_4 nvarchar(255),sAlert_name_vo_5 nvarchar(255),sAlert_name_vo_6 nvarchar(255),sAlert_name_vo_7 nvarchar(255),sAlert_name_vo_8 nvarchar(255),sAlert_name_vo_9 nvarchar(255)*/
)
/*
insert into tempo
select TA.sContact_vo_email, TA.tsLastModif, TA.tsCreation,
TB.iPrice_vo, TB.iModel_year_vo, TB.sBrand_vo, TB.sDetail_url_vo, TB.sModel_name_vo,
TB.sThumbnail_url_vo, TB.sUnsubscribe_url_vo, TB.tsDate_vo, TB.sAlert_name_vo
From neolane.BmwContact_vo2 TA
LEFT OUTER JOIN neolane.BmwAlert_vo2 TB on TA.sContact_vo_email=TB.sContact_email_vo
*/
/*déclarartion des variables*/
declare @iCounty_vo varchar(255),
@iMileage_vo varchar(255),
@iModel_year_vo varchar(255),
@iPrice_vo varchar(255)

declare @sBrand_vo varchar(255),
@sDetail_url_vo varchar(255),
@sModel_name_vo varchar(255),
@sThumbnail_url_vo varchar(255),
@sUnsubscribe_url_vo varchar(255),
@sAlert_name_vo varchar(50)


declare @pivot varchar(200),
@sum varchar(200),
@sql nvarchar(1000),
@col varchar(255),
@sql_part1 varchar(4000),
@sql_part2 varchar(4000),
@compteur int

select @pivot='', @sum=''

/*selectionner les mails des personnes */
declare c cursor
for select distinct sContact_vo_email
from neolane.BmwContact_vo2
order by sContact_vo_email

open c
fetch c into @col
while @@FETCH_STATUS = 0
begin
/*deux partie de chaines la première pour la commande et la deuxième pour les serie de données*/
set @sql_part1 = 'insert tempo(sContact_vo_email '
set @sql_part2 = ' Values(''' + @col + ''','''


/*récupération des alertes par email*/
declare cAlert cursor for select iCounty_vo,iMileage_vo,iModel_year_vo,iPrice_vo,
sBrand_vo,sDetail_url_vo,sModel_name_vo,sThumbnail_url_vo,sUnsubscribe_url_vo,sAlert_name_vo
from neolane.BmwAlert_vo2
where sContact_email_vo = @col

/* ajout des infos de chaque alerte dans la table temporaire*/
open cAlert
fetch cAlert into @iCounty_vo,@iMileage_vo,@iModel_year_vo,@iPrice_vo,
@sBrand_vo,@sDetail_url_vo,@sModel_name_vo,@sThumbnail_url_vo,@sUnsubscribe_url_vo,@sAlert_name_vo

set @compteur = 1
while (@@FETCH_STATUS = 0 and @compteur <3)
begin


set @sql_part1 = @sql_part1 + ',iCounty_vo_' + convert(varchar,@compteur)
+ ',iMileage_vo_' + convert(varchar,@compteur)
+ ',iModel_year_vo_' + convert(varchar,@compteur)
+ ',iPrice_vo_' + convert(varchar,@compteur)
+ ',sBrand_vo_' + convert(varchar,@compteur)
+ ',sDetail_url_vo_' + convert(varchar,@compteur)
+',sModel_name_vo_' + convert(varchar,@compteur)
+',sThumbnail_url_vo_' + convert(varchar,@compteur)
+',sUnsubscribe_url_vo_'+ convert(varchar,@compteur)
+',sAlert_name_vo_' + convert(varchar,@compteur)


set @sql_part2 = @sql_part2 + isnull(@iCounty_vo,'') + ''',''' + isnull(@iMileage_vo,'') + ''',''' + isnull(@iModel_year_vo,'') + ''',''' + isnull(@iPrice_vo,'') + ''','''+ isnull(@sBrand_vo,'') + ''',''' + isnull(@sDetail_url_vo,'') + ''',''' + isnull(@sModel_name_vo,'') + ''',''' + isnull(@sThumbnail_url_vo,'') + ''',''' + isnull(@sUnsubscribe_url_vo,'') + ''',''' + isnull(@sAlert_name_vo,'')


fetch cAlert into @iCounty_vo,@iMileage_vo,@iModel_year_vo,@iPrice_vo,
@sBrand_vo,@sDetail_url_vo,@sModel_name_vo,@sThumbnail_url_vo,@sUnsubscribe_url_vo,@sAlert_name_vo
set @compteur = @compteur + 1


end

close cAlert
deallocate cAlert

/* avant exécution fermer les parenthèses*/
set @sql_part1 = @sql_part1 + ')'
set @sql_part2= @sql_part2 +',sAlert_name_vo_' + convert(varchar,@compteur)+ ''')'

exec (@sql_part1 + ' ' + @sql_part2)


fetch c into @col
end
close c
deallocate c


select * from tempo
drop table tempo