IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Problème sur une sélection puis séparation par une ligne blanche [XL-2003]


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut Problème sur une sélection puis séparation par une ligne blanche
    Je suis entrain de créer une macro pour séparer des numéros (identifant) par année. Le problème que je rencontre est qu'il me fait bien une séparation, mais il prend une ligne en moin ou une en trop, je montre avec un exemple

    Données :

    26500 2002
    26500 2002
    26700 2002
    26700 2002
    23400 2003
    24000 2003

    le résultat doit être :


    26500 2002
    26500 2002

    26700 2002
    26700 2002

    23400 2003
    24000 2003


    Or il me fait ceci :

    26500 2002

    26500 2002
    26700 2002
    26700 2002

    23400 2003
    24000 2003

    il prend donc bien en considération le changement d'année mais il y a un problème aux changements d'identifiant.


    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
     
     
    'Insertion d'une ligne totale par année
    '***************************
     
    Range("a1")
     
    Cumulbrut=0
    Solde3112=0
     
    Do while activecell.value <>""
     
    AnneeEnCours = Year (ActiveCell.Offset(0,10).Value
    CumulBrut = CumulBrut + ActiveCell.Offset (0,6).Value
     
    If ActiveCell.Value <> ActveCell.Offset (1,0).Value then
     
    ActiveCell.EntireRow.Insert
    Activecell.offset (1,0).select
     
     
    End if
     
    if year (ActiveCell.offset (0,4).Value = Year (ActiveCell.Offset (1,4).Value) Then
     
     
    ActiveCell.offset (1,0).Select
     
    else 
     
    'Calcul du solde de fin d'année
    '**********************
     
    if year(activecell.offset(1,3).value) = year(activecell.offset (0,4).value then
     
     
    solde3112 = activecell.offset (1,1).value
     
    else
     
    solde3112 = 0
     
    end if
     
    activecell.offset (1,0).select
     
    selection.entirerow.insert
    selection.entirerow.insert
     
    activecell.value= "cumul" &anneeEnCours
    activecell.offset(0,1).value= solde3112
    activecell.offset (0,6).value = cumul brut
     
     
    activecell.offset(0,-6).insert
     
    cumulbrut=0
    activecell.offset (3,0).select
     
     
    loop
     
     
     
    voilà, je ne peux pas le copier coller de mon travail c'est sécurisé, donc j'ai recopié qu'une partie,
     
    le (0,10) est enfaite le colonne ou se trouve un YEAR= pour n'avoir que l'année en colone K
     
    le (0,4) donne la date sous format ??/??/????  en colone E
    le (0,6) et le montant des interets en colone G
     
     
    Je dois trouver une solution, et je serai vraiment enchanté que vous réussissiez à m'aider,
     
    Je suis dispo, pour tous autre informations complémentaires
     
    Merci d'avance.
     
    Bone journée

  2. #2
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour korni184,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
    For i = Range("B1:B100").Count To 2 Step -1
       If Range("B" & i) <> Range("B" & i - 1) Then Rows(i).Insert Shift:=xlDown
    Next
    End Sub

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ActiveCell.Value <> ActveCell.Offset (1,0).Value then
     
    ActiveCell.offset(1,0).EntireRow.Insert

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut problème
    Bonjour Pierre,


    Désolé je mettais les réponses sur un autre topic, donc il y a deux messages, y faut lire le premier, mais prendre en compte le deuxième

    J'ai essayer ton bout de code et effectivement il sépare au bonne endroit, mais il le fait que sur le premier et il y met un totale au changement de l'identifiant (racine) et non pas de l'année que dois-je modifier ?
    ---------------------------------------------------------------------------------------------
    à présent j'ai réussis à faire une séparation par numéro d'identifiant (racine) le problème c'est qu'il me fait l'addition à chaque changement de d'identifiant et non pas des années

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    'Insertion d'une ligne totale par année
    '***************************
     
    Range("a1")
     
    Cumulbrut=0
    Solde3112=0
     
    Do while activecell.value <>""
     
    AnneeEnCours = Year (ActiveCell.Offset(0,10).Value
    CumulBrut = CumulBrut + ActiveCell.Offset (0,6).Value
     
    If ActiveCell.Value <> ActveCell.Offset (1,0).Value then
     
    ‘modification
    *****************
     
     
     
     
     
    ActiveCell.offset(1,0).entirerow.insert
     
    Activecell.offset(1,0).select
     
     
     
     
     
     
     
     
     
    End if
     
    if year (ActiveCell.offset (0,4).Value = Year (ActiveCell.Offset (1,4).Value) Then
     
     
    ActiveCell.offset (1,0).Select
     
    else 
     
    'Calcul du solde de fin d'année
    '**********************
     
    if year(activecell.offset(1,3).value) = year(activecell.offset (0,4).value then
     
     
    solde3112 = activecell.offset (1,1).value
     
    else
     
    solde3112 = 0
     
    end if
     
    activecell.offset (1,0).select
     
    selection.entirerow.insert
    selection.entirerow.insert
     
    activecell.value= "cumul" &anneeEnCours
    activecell.offset(0,1).value= solde3112
    activecell.offset (0,6).value = cumul brut
     
     
    activecell.offset(0,-6).insert
     
    cumulbrut=0
    activecell.offset (3,0).select
     
     
    loop

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Si tu expliquais d'abord ce que tu souhaites réaliser. Car il me semble qu'ici, l'utilisation des sous-totaux d'Excel serait pertinente.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut problème
    j'avoue que c'est assez pertinant les sous totaux, mais je dois indiquer un totale gérérale par année et non pas par compte c'est une des conditions de ma macro, une condition qu'on m'a donnée auparavant.

    La quantité d'identifiant (racine) à traiter et immense, il y aura beaucoup trop de séparation de ligne, donc le mieux est de regrouper les numéros de Compte en eux et les séparer par années en ajoutant un totale par an et un cumul brut, mais pour l'instant le cumul brut fonctionne donc, ce n'est pas le réel problème.


    Ceci dire, c'est un traitement de dépots à terme, on retrouve un grand nombre de compte, par deux *inputbox* et deux do while, je séléctionne les bonnes données et je supprime le reste.......

    ensuite, je dois les trier (chose faite) puis au final séparer les numéros de comptes car pour une personne il peut avoir plusieurs numero de compte donc cela donne par exemple



    15 300 en 2002
    15 301 en 2002
    15 302 en 2002
    15 303 en 2002
    TOTALE ANNEE
    15 300 2003
    15 301 2003
    15 302 2003
    15 304 2003
    TOTAL ANNEE
    (300,301,302 sont des devises)


    LE CUMUL BRUT est enfaite si un dépot a terme commence en fin d'année et échus l'année suivante on fait un cumul brut, car y a une colonne date création et date échus, et parfois en fin d'année on retrouve 20/12/2002 et échus 20/12/2003 donc on la retrouvera en 2003 sinon le montant indiqué sera de 0.



    voilà pourquoi il faut une séparation par DEVISE (pour des précisions supplementaire 300,301,302) et un totale par années et donc séparer aussi dune ligne


    voilà

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut
    sa me parait plus clair comme ceci



    15 300 en 2002
    15 300
    15 300

    15 301 en 2002
    15 301

    15 302 en 2002

    15 303 en 2002
    15 303

    TOTALE ANNEE

    15 300 2003

    15 301 2003
    15 301

    15 302 2003
    15 302

    15 304 2003
    TOTAL ANNEE

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Je ne vois rien qui empêche les sous-totaux, éventuellement en VBA.

    Donne un aperçu (copie d'écran, par exemple) de la feuille avec des données avant traitement ET après traitement (avec des sous-totaux calculés), que l'on puisse proposer quelque chose de concret

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut probleme
    vous n'auriez pas une adresse email ? car c'est un peu compliqué pour coller sur le forum

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Non. Le forum est fait pour cela.

    Il suffit d'une copie d'écran avec quelques lignes, quitte à créer une feuille exprès pour.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut
    je sais bien que le forum est fait pour ca, mais malheureusement je ne peux pas faire de copie d'ecran.... c'est bloqué

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 165
    Points : 62
    Points
    62
    Par défaut
    identifiant SOLDE devise date créa date échus TAUX INTERETS

    1000 300 4000 CAD 19.09.2002 21.12.2002 1,2 200
    1000 300 5000 CAD 21.10.2002 23.12.2002 1,3 300

    cumul 2002 0 500

    1000 310 8000 USD 20.02.2002 24.03.2002 1,1 600
    1000 310 1000 USD 24.04.2002 23.03.2002 1,1 600

    cumul 2002 0 1200


    ET J'AIMERAI QU'IL DONNE CECI :

    1000 300 4000 CAD 19.09.2002 21.12.2002 1,2 200
    1000 300 5000 CAD 21.10.2002 23.12.2002 1,3 300

    1000 310 8000 USD 20.02.2002 24.03.2002 1,1 600
    1000 310 1000 USD 24.04.2002 23.03.2002 1,1 600

    cumul 2002 0 1200

    JE SAIS QUE SA PARAIT IDIOT DE FAIRE UN TOTAL DE DEVISE, MAIS ENFAITE JE VEUX RAJOUTER PAR LA SUITE UNE FOIS LE PROBLEME RéSOLU
    UN TOTAL APRES QUE LES MONTANTS SOIT CONVERTIS EN EURO PAR UN VLOOPUP EN COLONE I
    ET DONC IL N'Y AURA PLUS DE TOTAL DES INTERETS (USD,CAD) MAIS UN TOTAL EN EURO

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2012] Puis je remplacer une licence d'essai par une licence isb ?
    Par momo28 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/12/2014, 15h10
  2. [AC-2010] Critere d'une requete dynamique croisée par une sélection multiple
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 10/03/2014, 12h58
  3. [AC-2007] Problème requête sur 1 table en passant par une association
    Par ganon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/08/2009, 15h33
  4. Réponses: 0
    Dernier message: 03/03/2008, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo