Récupération de données et mise en forme
Résolu/Fermé
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
-
Modifié par ramio31 le 19/10/2014 à 21:28
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 21 oct. 2014 à 14:08
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 21 oct. 2014 à 14:08
A voir également:
- Récupération de données et mise en forme
- Mise en forme conditionnelle excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise en forme tableau croisé dynamique - Guide
- Recuperation de données - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
5 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
20 oct. 2014 à 08:55
20 oct. 2014 à 08:55
Bonjour,
1- tu as mis deux images de ta feuille Feuil1. De manière générale, il vaut mieux faire passer un fichier plutôt qu'une image.
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
2- Un peu de lecture
3- Ta solution, donc, par Mr Boisgontier :
1- tu as mis deux images de ta feuille Feuil1. De manière générale, il vaut mieux faire passer un fichier plutôt qu'une image.
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
2- Un peu de lecture
3- Ta solution, donc, par Mr Boisgontier :
Sub CompteItems() Dim mondico As Object, c As Variant Set mondico = CreateObject("Scripting.Dictionary") For Each c In Sheets("Feuil1").Range("a2", [a65000].End(xlUp)) mondico(c.Value) = mondico(c.Value) + 1 Next c Sheets("Feuil2").[c2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys) Sheets("Feuil2").[d2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items) End Sub
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
20 oct. 2014 à 16:42
20 oct. 2014 à 16:42
Bonjour,
Je te remercie pour ta réponse. Je vais me mettre au travail pour voir ce que ça donne et tenir au courant ici.
Le lien comme tu me l'as expliqué : https://www.cjoint.com/?0JuqTs57Wft
Encore merci pour ton aide.
Je te remercie pour ta réponse. Je vais me mettre au travail pour voir ce que ça donne et tenir au courant ici.
Le lien comme tu me l'as expliqué : https://www.cjoint.com/?0JuqTs57Wft
Encore merci pour ton aide.
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
20 oct. 2014 à 20:02
20 oct. 2014 à 20:02
Rebonjour, la macro fonctionne très bien merci.
J'aurais une autre question :
Avec les nouvelles feuilles que j'ai créées (car plusieurs fichiers sources), je veux créer des formules dans une feuille appelée "feuilleFormula" qui reprendront les valeurs fréquences et données et qui seront de ce type :
sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=RiskDiscrete({Donnée1,Donnée2,Donnée3,.....,DonnéeX},{Freq1,Freq2,Freq3,.....FreqX})"
(Données et fréquence de la feuille 1 par exemple)
sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=RiskDiscrete({Donnée1,Donnée2,Donnée3,.....,DonnéeY},{Freq1,Freq2,Freq3,...FreqY})"
(Données et fréquence de la feuille 2 par exemple)
Donc ma question serait quelle macro pour intégrer toutes les données et fréquences dans ma formule tout en faisant référence à la bonne feuille.
Merci
J'aurais une autre question :
Avec les nouvelles feuilles que j'ai créées (car plusieurs fichiers sources), je veux créer des formules dans une feuille appelée "feuilleFormula" qui reprendront les valeurs fréquences et données et qui seront de ce type :
sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=RiskDiscrete({Donnée1,Donnée2,Donnée3,.....,DonnéeX},{Freq1,Freq2,Freq3,.....FreqX})"
(Données et fréquence de la feuille 1 par exemple)
sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=RiskDiscrete({Donnée1,Donnée2,Donnée3,.....,DonnéeY},{Freq1,Freq2,Freq3,...FreqY})"
(Données et fréquence de la feuille 2 par exemple)
Donc ma question serait quelle macro pour intégrer toutes les données et fréquences dans ma formule tout en faisant référence à la bonne feuille.
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 oct. 2014 à 07:50
21 oct. 2014 à 07:50
Bonjour,
Je ne connais pas la formule RiskDiscrete... Cela correspond à qu'elle fonction d'Excel???
Je ne connais pas la formule RiskDiscrete... Cela correspond à qu'elle fonction d'Excel???
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
21 oct. 2014 à 09:42
21 oct. 2014 à 09:42
Ce n'est pas important le Risk ici dans la formule. Ce qui importe c'est comment intégrer cette formule dans une boucle et la remplir au fur et à mesure.
Sinon risk correspond à une formule d'un logiciel complémentaire à Excel : @risk
Sinon risk correspond à une formule d'un logiciel complémentaire à Excel : @risk
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 oct. 2014 à 09:48
21 oct. 2014 à 09:48
Pas besoin de boucle, ... selon le type de formule.
Tu peux, sans doute, y intégrer un Array... Un peu comme ceci :
Tu peux, sans doute, y intégrer un Array... Un peu comme ceci :
Dim dl As Long, ArrayDonnees(), ArrayFreq()
dl = Sheets("Feuil2").Range("C" & Rows.Count).End(xlUp).Row
ArrayDonnees = Sheets("Feuil2").Range("C2:C" & dl).Value 'Données
ArrayFreq = Sheets("Feuil2").Range("D2:D" & dl).Value 'Fréquences
Sheets("Feuil2").Cells(2, 6).FormulaLocal = "=RiskDiscrete(ArrayDonnees, ArrayFreq)"
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
21 oct. 2014 à 13:04
21 oct. 2014 à 13:04
Je n'arrive pas à savoir ce que renvoie Array.
Renvoie t'elle une ligne du type : {donnée1,donnée2,..} ?
Car lorsque j'exécute le code ça ne fonctionne pas.
Renvoie t'elle une ligne du type : {donnée1,donnée2,..} ?
Car lorsque j'exécute le code ça ne fonctionne pas.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 oct. 2014 à 13:05
21 oct. 2014 à 13:05
Je t'ai dit que tout dépendais de la formule elle même...
Sans en savoir davantage, je ne peux rien faire de plus.
Sans en savoir davantage, je ne peux rien faire de plus.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
21 oct. 2014 à 13:12
21 oct. 2014 à 13:12
Oui j'ai bien compris mais ici Array me renvoie bizarrement la 1ère valeur de la plage. Connais tu une fonction qui permet de récupérer toute une plage d'une colonne et de l'écrire sous cette forme :
{1,5,6,9,10}
Merci
{1,5,6,9,10}
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 oct. 2014 à 13:28
21 oct. 2014 à 13:28
Décidément, je ne comprends pas du tout.
Désolé, ça doit être moi, mais je saisis de moins en moins ce que tu souhaites réaliser.
Bon.
Reprenons, juste pour moi.
Tu as réalisé une macro qui te donne les données avec leur fréquence. Que veux tu faire avec ces données et fréquences?
Désolé, ça doit être moi, mais je saisis de moins en moins ce que tu souhaites réaliser.
Bon.
Reprenons, juste pour moi.
Tu as réalisé une macro qui te donne les données avec leur fréquence. Que veux tu faire avec ces données et fréquences?
ramio31
Messages postés
12
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
21 octobre 2014
21 oct. 2014 à 14:04
21 oct. 2014 à 14:04
C'est bon pijaku,
Je suis resté sur ma 1ère idée avec une boucle for et j'ai enfin réussi!
L'incrémentation se fair plutôt comme ca :
For I = 1 to 50
Expression = Expression & "," & Worksheets("MaFeuille").cells(i, 1)
Next I
Du coup je récupère ma plage que je peux écrire directement dans ma formule.
Merci beaucoup a toi pour ton aide
Je suis resté sur ma 1ère idée avec une boucle for et j'ai enfin réussi!
L'incrémentation se fair plutôt comme ca :
For I = 1 to 50
Expression = Expression & "," & Worksheets("MaFeuille").cells(i, 1)
Next I
Du coup je récupère ma plage que je peux écrire directement dans ma formule.
Merci beaucoup a toi pour ton aide
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 oct. 2014 à 14:08
21 oct. 2014 à 14:08
Je n'avais décidément pas compris...
Le principal est que cela fonctionne...
A+
Le principal est que cela fonctionne...
A+