Soustraire cellules une à une, enfin presque :)
Résolu/Fermé
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
-
4 mars 2018 à 22:23
Zerome33 Messages postés 11 Date d'inscription dimanche 4 mars 2018 Statut Membre Dernière intervention 8 mars 2018 - 8 mars 2018 à 19:37
Zerome33 Messages postés 11 Date d'inscription dimanche 4 mars 2018 Statut Membre Dernière intervention 8 mars 2018 - 8 mars 2018 à 19:37
A voir également:
- Soustraire cellules une à une, enfin presque :)
- Formule excel pour additionner plusieurs cellules - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellules excel - Guide
- Concatener deux cellules excel - Guide
- Excel colorer une cellule si - Guide
4 réponses
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Ambassadeur
1 557
4 mars 2018 à 23:25
4 mars 2018 à 23:25
bonsoir, cela t'avancera peut-être de faire ainsi:
enregistre en A1 de ton nouveau classeur la formule suivante, adaptée à tes classeurs et feuilles:
enregistre en A1 de ton nouveau classeur la formule suivante, adaptée à tes classeurs et feuilles:
='C:\Users\toi\Documents\chemin\[fichier1.xls]f1'!A1-C:\Users\toi\Documents\chemin\[fichier2.xls]f1'!A1duplique la formule vers le bas et vers la droite
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
4 mars 2018 à 23:59
4 mars 2018 à 23:59
Là, je suis scotché !
Trop fort !! C'est exactement ce que je voulais. J'en reviens pas. Je pensais pas être clair (c'est peut être pas le cas) mais tu m'as compris ! Génial !
Plus qu'à remplacer à souhait les fichiers pointés par une liste déroulante. Je devrais y arriver et ça me fera un outil hyper pratique.
MERCI
Trop fort !! C'est exactement ce que je voulais. J'en reviens pas. Je pensais pas être clair (c'est peut être pas le cas) mais tu m'as compris ! Génial !
Plus qu'à remplacer à souhait les fichiers pointés par une liste déroulante. Je devrais y arriver et ça me fera un outil hyper pratique.
MERCI
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
5 mars 2018 à 22:08
5 mars 2018 à 22:08
Re,
Ça fonctionne nickel mais je rencontre des difficultés à jongler avec les fichiers pointés.
J'ai pas mal de classeurs et un seul pour afficher les résultats.
J'aimerais pouvoir sélectionner indépendamment les fichiers 1 et 2 (suivant la formule au dessus) à partir d'une liste et que la formule "s'adapte" en lisant les fichiers choisis.
Est ce possible ?
Ça fonctionne nickel mais je rencontre des difficultés à jongler avec les fichiers pointés.
J'ai pas mal de classeurs et un seul pour afficher les résultats.
J'aimerais pouvoir sélectionner indépendamment les fichiers 1 et 2 (suivant la formule au dessus) à partir d'une liste et que la formule "s'adapte" en lisant les fichiers choisis.
Est ce possible ?
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
6 mars 2018 à 00:10
6 mars 2018 à 00:10
moi j'utiliserais ce code (partiellement testé), à mettre et à exécuter dans le fichier recap:
Option Explicit Sub selfic() Dim strFileToOpen1 As String, strFileToOpen2 As String Dim sh As Worksheet Dim cel As Range Dim nfeuil As String, caddr As String, form As String Dim p1 As String, n1 As String, p2 As String, n2 As String Dim pos1 As Integer, pos2 As Integer strFileToOpen1 = Application.GetOpenFilename _ (Title:="Premier classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") strFileToOpen2 = Application.GetOpenFilename _ (Title:="Second classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") pos1 = InStrRev(strFileToOpen1, "\") p1 = Left(strFileToOpen1, pos1 - 1) n1 = Right(strFileToOpen1, Len(strFileToOpen1) - pos1) pos2 = InStrRev(strFileToOpen1, "\") p2 = Left(strFileToOpen2, pos2 - 1) n2 = Right(strFileToOpen2, Len(strFileToOpen2) - pos2) For Each sh In ThisWorkbook.Worksheets nfeuil = sh.Name For Each cel In sh.Cells caddr = cel.Address form = "='" & p1 & "\[" & n1 & "]" & nfeuil & "'!" & caddr & "-'" & p2 & "\[" & n2 & "]" & nfeuil & "'!" & caddr cel.Formula = form Next cel Next sh End Sub
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
>
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Modifié le 6 mars 2018 à 08:12
Modifié le 6 mars 2018 à 08:12
petites améliorations:
Option Explicit Sub selfic() Dim strFileToOpen1 As String, strFileToOpen2 As String Dim sh As Worksheet Dim cel As Range Dim nfeuil As String, caddr As String, form As String Dim p1 As String, n1 As String, p2 As String, n2 As String Dim pos1 As Integer, pos2 As Integer Dim str1 As String, str2 As String strFileToOpen1 = Application.GetOpenFilename _ (Title:="Premier classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") strFileToOpen2 = Application.GetOpenFilename _ (Title:="Second classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") pos1 = InStrRev(strFileToOpen1, "\") p1 = Left(strFileToOpen1, pos1 - 1) n1 = Right(strFileToOpen1, Len(strFileToOpen1) - pos1) pos2 = InStrRev(strFileToOpen1, "\") p2 = Left(strFileToOpen2, pos2 - 1) n2 = Right(strFileToOpen2, Len(strFileToOpen2) - pos2) For Each sh In ThisWorkbook.Worksheets nfeuil = sh.Name str1 = "='" & p1 & "\[" & n1 & "]" & nfeuil & "'!" str2 = "-'" & p2 & "\[" & n2 & "]" & nfeuil & "'!" For Each cel In sh.Cells caddr = cel.Address form = str1 & caddr & str2 & caddr cel.Formula = form Next cel Next sh End Sub
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
6 mars 2018 à 17:54
6 mars 2018 à 17:54
Merci pour ton aide.
Mon ordi peine avec ça, il lui faut environ 15min pour pondre une ligne... c'est pas possible !
Est ce qu'il travaille sur toutes les cellules des feuilles ?
Si oui, comment spécifier une zone pour réduire le travail ? Un autre moyen d'alléger le truc ?
En fait, la formule (avec les chemins de fichiers) va très bien puisque je sélectionne les valeurs source à l'ouverture. Seulement j'aimerais afficher les sources choisies dans chacune des feuilles du Récap pour rappel.. C'est possible ?
Mon ordi peine avec ça, il lui faut environ 15min pour pondre une ligne... c'est pas possible !
Est ce qu'il travaille sur toutes les cellules des feuilles ?
Si oui, comment spécifier une zone pour réduire le travail ? Un autre moyen d'alléger le truc ?
En fait, la formule (avec les chemins de fichiers) va très bien puisque je sélectionne les valeurs source à l'ouverture. Seulement j'aimerais afficher les sources choisies dans chacune des feuilles du Récap pour rappel.. C'est possible ?
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
6 mars 2018 à 20:09
6 mars 2018 à 20:09
en effet, ce que j'ai proposé travaille très bêtement sur toutes les cellules du classeur récapitulatif. ceci devrait être plus rapide, et sauve les noms des sources en A1 et B1 de chaque feuille.
Option Explicit Sub selfic() Dim strFileToOpen1 As String, strFileToOpen2 As String Dim sh As Worksheet Dim cel As Range Dim nfeuil As String, caddr As String, form As String Dim p1 As String, n1 As String, p2 As String, n2 As String Dim pos1 As Integer, pos2 As Integer Dim str1 As String, str2 As String Dim savedcalcmode As XlCalculation strFileToOpen1 = Application.GetOpenFilename _ (Title:="Premier classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") strFileToOpen2 = Application.GetOpenFilename _ (Title:="Second classeur", _ FileFilter:="Excel Files *.xls* (*.xls*),") pos1 = InStrRev(strFileToOpen1, "\") p1 = Left(strFileToOpen1, pos1 - 1) n1 = Right(strFileToOpen1, Len(strFileToOpen1) - pos1) pos2 = InStrRev(strFileToOpen1, "\") p2 = Left(strFileToOpen2, pos2 - 1) n2 = Right(strFileToOpen2, Len(strFileToOpen2) - pos2) For Each sh In ThisWorkbook.Worksheets savedcalcmode = Application.Calculation Application.Calculation = xlCalculationManual Application.ScreenUpdating = False nfeuil = sh.Name str1 = "='" & p1 & "\[" & n1 & "]" & nfeuil & "'!" str2 = "-'" & p2 & "\[" & n2 & "]" & nfeuil & "'!" For Each cel In sh.UsedRange caddr = cel.Address form = str1 & caddr & str2 & caddr cel.Formula = form Next cel sh.[A1] = strFileToOpen1 sh.[B1] = strFileToOpen2 Application.Calculation = savedcalcmode Application.ScreenUpdating = True Next sh End Sub
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
6 mars 2018 à 20:39
6 mars 2018 à 20:39
Yes ! C'est beaucoup mieux, rien à voir...
Dernière requête pour peaufiner : possible de remplacer "For Each cel" par "For B2:U33" ?
Un truc genre "From cel B2...................To cel U33 ?
Ca me laisserait la possibilité de déplacer les bornes du tableau au besoin + optimiser le temps de calcul...
Dernière requête pour peaufiner : possible de remplacer "For Each cel" par "For B2:U33" ?
Un truc genre "From cel B2...................To cel U33 ?
Ca me laisserait la possibilité de déplacer les bornes du tableau au besoin + optimiser le temps de calcul...
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
>
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
6 mars 2018 à 21:08
6 mars 2018 à 21:08
alors plutôt:
tu es trop modeste, tu as repéré la ligne à changer!
For Each cel In sh.[B2:U33], remplacer
UsedRangepar
[B2:U33].
tu es trop modeste, tu as repéré la ligne à changer!
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
6 mars 2018 à 21:14
6 mars 2018 à 21:14
Mieux vaut rester modeste, surtout quand on est mauvais ;-)
MERCI pour ton aide précieuse, je n'y serai jamais arrivé seul dans mon coin.
Je suis hyper content de cet outil ! MERCI l'ami !
MERCI pour ton aide précieuse, je n'y serai jamais arrivé seul dans mon coin.
Je suis hyper content de cet outil ! MERCI l'ami !
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
>
Zerome33
Messages postés
11
Date d'inscription
dimanche 4 mars 2018
Statut
Membre
Dernière intervention
8 mars 2018
6 mars 2018 à 22:01
6 mars 2018 à 22:01
avec plaisir!
et c'est plus motivant d'assister un modeste lucide et qui s'explique bien!
quand tu veux, utilise la roue dentée à droite du titre pour marquer le sujet comme résolu, et n'hésite pas à faire appel au forum la prochaine fois, il y a pas mal d'aide autour de Excel.
et c'est plus motivant d'assister un modeste lucide et qui s'explique bien!
quand tu veux, utilise la roue dentée à droite du titre pour marquer le sujet comme résolu, et n'hésite pas à faire appel au forum la prochaine fois, il y a pas mal d'aide autour de Excel.
4 mars 2018 à 23:59