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

Macros et VBA Excel Discussion :

Import de données, et somme.si.ens


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Dictateur décédé
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Dictateur décédé
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Par défaut Import de données, et somme.si.ens
    Bonjour

    Je me permets de demander votre aide pour des questions de débutant.

    D'abord, j'ai un bloquage concernant un import de donnnées. Je cherche à prendre une table dans un document pour l'importer dans un autre document. L'import se fait, mais les données arrivent au mauais endroit de la bonne feuille. Comment faire pour que la table soit collée en B5 de la feuille "CHARGES" ?

    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
     
    Sub Macro()
     
    '
        Dim derlig As Integer
    '
        Windows("BAL_44.xlsx").Activate
        Sheets("Données").Select
        derlig = LastLigData()
        For i = 5 To derlig
            NumCompte = Cells(i, 2).Value
            Intitulé = Cells(i, 3).Value
            Débit = Cells(i, 4).Value
            Crédit = Cells(i, 5).Value
            If NumCompte Like "60*" Then
                Windows("abc.xlsm").Activate
                Sheets("CHARGES").Select
                Cells(i, 2) = NumCompte
                Cells(i, 3) = Intitulé
                Cells(i, 4) = Débit
                Cells(i, 5) = Crédit
                Windows("BAL_44.xlsx").Activate
                Sheets("Données").Select
            End If
        Next i
    End Sub
    Ensuite, j'ai un souci pour exprimer le critère "ne commence pas par" dans la fonction SOMME.SI.ENS.

    =SOMME.SI.ENS(H5:H300;B5:B300; "<>63*";B5:B300; "<>64*")
    ici je cherche à faire la somme des cellules de la plage H5:H300, pour lesquelles les cellules de la plage B5:B300 ne commencent pas par 63 et 64.

    Merci pour votre aide !!

    Saddam

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Pour la copie le mieux serait de copier l'ensemble de la plage plutôt que de faire un transfert de valeur ligne par ligne

    Code non testé avec les noms de classeurs et feuilles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim derlig As Integer
    derlig = LastLigData()
     
    Sheets("Données").range("B5:E" & derlig).Copy workbooks(""abc.xlsm").Sheets("CHARGES").range("B5")
    Pour la formule SOMME.SI.ENS je ne peux te répondre car je suis sous 2003
    Par contre, tu peux utiliser un sommeprod
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Sommeprod((gauche(B5:B300;2)<>"63")*(gauche(B5:B300;2)<>"64");H5:H300)

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Ta formule avec la fonction SOMME.SI.ENS. fonctionne correctement si les cellules de la plage B5:B300 sont au format texte.

    Cordialement.

  4. #4
    Candidat au Club
    Homme Profil pro
    Dictateur décédé
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Dictateur décédé
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Par défaut
    Merci à vous deux pour ces réponses.

    Compte-rendu, à première vue :

    Sommeprod : ça marche tout à fait
    Copier une plage en entier : ça ne convient pas tout à fait dans mon cas, mais peut être que j'appliquerai l'idée plus tard
    Changer le format de certaines plages : j'ai essayé mais ça ne marche pas, apparemment.

    [je suis visiblement très "visuel" ]

  5. #5
    Candidat au Club
    Homme Profil pro
    Dictateur décédé
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Dictateur décédé
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Par défaut
    Bonjour

    J'ai une nouvelle question à vous soumettre, toujours assez facilce, cette fois-ci concernant la fonction somme.si.

    Je souhaite faire la somme de toute les virements effectués pour un jour bien précis.

    Donc la fonction donne à priori quelque chose du genre :

    =SOMME.SI('plage des dates des paiements' ; 'critère : les dates des paiements sont égales à 1 date dans une autre plage' ; 'paiements')

    exemple :
    =SOMME.SI('Feuil1'!B2:B300; ??? ; 'Feuil1'!A2;A300)

    Comme vous le voir, je ne sais pas comment exprimer la condition. L'informaticien de la boîte m'a fait comprendre que mes questions l'ennuyaient ferme

    Merci d'avance

    Saddam

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Un autre façon de faire une somme.si sans si on a un Excel version antérieure à 2007

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI((B2:B300=Date)*(B2:C300=1);A2:A300))
    Formule matricielle a valider par CTRL+MAJ+ENTREE

    tu peux aussi utiliser mon exemple de sommeprod qui conviendra très bien pour cela

Discussions similaires

  1. [XL-2007] Somme.si.ens() et filtre données
    Par pastis.vi dans le forum Excel
    Réponses: 2
    Dernier message: 23/05/2013, 12h23
  2. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32
  3. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  4. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22
  5. Importation de données postgresql
    Par ythierrin dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/10/2003, 22h18

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