Excel 2010: une exception dans mes calculs
Fermé
Ju@nita
Messages postés
149
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
8 août 2024
-
Modifié par Ju@nita le 8/05/2014 à 19:42
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 8 juil. 2014 à 19:36
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 8 juil. 2014 à 19:36
A voir également:
- Excel 2010: une exception dans mes calculs
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Word et excel gratuit - Guide
4 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 8/05/2014 à 22:34
Modifié par eriiic le 8/05/2014 à 22:34
Bonsoir,
une façon :
Tu peux avoir plus de 2 clients séparés par des "-".
Bien que ça ne puisse pas arriver, si un des 2 clients n'existe pas j'alerte quand même. A toi de noter combien lui ajouter en créant la ligne.
https://www.cjoint.com/?DEiwGjREsLb
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
une façon :
Sub repartir() Dim c1 As Range, c2 As Range, client As Variant Dim cli As Long, ven As Long Application.ScreenUpdating = False Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart) While Not c1 Is Nothing client = Split(c1, "-") ' recup n° clients For cli = 0 To UBound(client) Set c2 = [A:A].Find(client(cli), LookIn:=xlValues, lookat:=xlWhole) If c2 Is Nothing Then MsgBox " Erreur, client " & cli & " non trouvé" Else For ven = 0 To 1 ' repartir les ventes c2.Offset(, ven + 1) = c2.Offset(, ven + 1) + c1.Offset(, ven + 1) / 2 Next ven End If Next cli c1.EntireRow.Delete Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart) Wend End Sub
Tu peux avoir plus de 2 clients séparés par des "-".
Bien que ça ne puisse pas arriver, si un des 2 clients n'existe pas j'alerte quand même. A toi de noter combien lui ajouter en créant la ligne.
https://www.cjoint.com/?DEiwGjREsLb
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Ju@nita
Messages postés
149
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
8 août 2024
9 mai 2014 à 14:38
9 mai 2014 à 14:38
MA-LA-DE !
pensais même pas que ça se pouvait.
et ça marche du premier coup et j'ai réussi à l'incorporer dans ma macro et d'en changer un peu les paramètres car les info ne sont pas dans les mêmes colonnes que dans le fichier test.
un gros merci.
pensais même pas que ça se pouvait.
et ça marche du premier coup et j'ai réussi à l'incorporer dans ma macro et d'en changer un peu les paramètres car les info ne sont pas dans les mêmes colonnes que dans le fichier test.
un gros merci.
bonjour,
finalement, ça accroche à quelque part. Pour le fichier test, ça fonctionne très bien. Mais mon fichier de base est plus gros et les clients et leurs données ne sont pas dans les mêmes colonnes, ni les entêtes de colonne qui ne sont pas sur la ligne 1 non plus.
Comme je ne comprends vraiment rien à la macro proposée, j'ai de la difficulté à l'adapter. Pourriez-vous svp me dire quelles sont les paramètres que je dois changer, ou autrement dit, que veut dire chaque étape ?
voici la macro:
Sub repartir()
Dim c1 As Range, c2 As Range, client As Variant
Dim cli As Long, ven As Long
Application.ScreenUpdating = False
Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart)
While Not c1 Is Nothing
client = Split(c1, "-") ' recup n° clients
For cli = 0 To UBound(client)
Set c2 = [A:A].Find(client(cli), LookIn:=xlValues, lookat:=xlWhole)
If c2 Is Nothing Then
MsgBox " Erreur, client " & cli & " non trouvé"
Else
For ven = 0 To 1 ' repartir les ventes
c2.Offset(, ven + 1) = c2.Offset(, ven + 1) + c1.Offset(, ven + 1) / (UBound(client) + 1)
Next ven
End If
Next cli
c1.EntireRow.Delete
Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart)
Wend
End Sub
Déjà en partant, je ne sais pas ce que veut dire: Dim c1 as Range.
svp j'ai besoin d'aide.
merci.
finalement, ça accroche à quelque part. Pour le fichier test, ça fonctionne très bien. Mais mon fichier de base est plus gros et les clients et leurs données ne sont pas dans les mêmes colonnes, ni les entêtes de colonne qui ne sont pas sur la ligne 1 non plus.
Comme je ne comprends vraiment rien à la macro proposée, j'ai de la difficulté à l'adapter. Pourriez-vous svp me dire quelles sont les paramètres que je dois changer, ou autrement dit, que veut dire chaque étape ?
voici la macro:
Sub repartir()
Dim c1 As Range, c2 As Range, client As Variant
Dim cli As Long, ven As Long
Application.ScreenUpdating = False
Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart)
While Not c1 Is Nothing
client = Split(c1, "-") ' recup n° clients
For cli = 0 To UBound(client)
Set c2 = [A:A].Find(client(cli), LookIn:=xlValues, lookat:=xlWhole)
If c2 Is Nothing Then
MsgBox " Erreur, client " & cli & " non trouvé"
Else
For ven = 0 To 1 ' repartir les ventes
c2.Offset(, ven + 1) = c2.Offset(, ven + 1) + c1.Offset(, ven + 1) / (UBound(client) + 1)
Next ven
End If
Next cli
c1.EntireRow.Delete
Set c1 = [A:A].Find("-", LookIn:=xlValues, lookat:=xlPart)
Wend
End Sub
Déjà en partant, je ne sais pas ce que veut dire: Dim c1 as Range.
svp j'ai besoin d'aide.
merci.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
8 juil. 2014 à 16:34
8 juil. 2014 à 16:34
Bonjour,
Dim sert à déclarer et typer les variables.
Pas obligatoire mais fortement recommandé.
2 mois après il faut tout reprendre à zéro. Tu aurais pu te réveiller plus tôt...
Il est où le fichier de travail qui correspond à la réalité ?
eric
Dim sert à déclarer et typer les variables.
Pas obligatoire mais fortement recommandé.
2 mois après il faut tout reprendre à zéro. Tu aurais pu te réveiller plus tôt...
Il est où le fichier de travail qui correspond à la réalité ?
eric
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
8 juil. 2014 à 19:36
8 juil. 2014 à 19:36
Comme j'ai été censuré et toi aussi : sert toi de la touche F1 et de google
eric
eric