Se connecter avec
S'enregistrer | Connectez-vous

convertir pdf en excel et macro

Dernière réponse : dans Programmation

j'ai converti un tableau PDF en excel, en conclusion le nombre de "nom prénom" ne correpond pas au "reference". Je cherche une formule qui peux renvoyer dans les cellules "nom prénom" le nom correspondant à leur référence et le mettre en macro.
comment faire?
j'ai essayé ceci =SI(ET((B7=C5);(B8=C6));B5;"" ) mais je tiens à ne pas toujours avoir B5 comme réponse mais quelque chose comme "le cellule 2X au dessus de B7 "B(7-2)" ce que je n'arrive pas à faire.
Merci de m'aider

Autres pages sur : convertir pdf excel macro

Lassé par la pub ? Créez un compte

j'ai déja trouvé ceci:
For i = 2 to 945
x=i
y=i+1
z=i+1
if ((cells(x,1)="" ) and (cells(z,3 <>"" )) then
activeCelles.formulaR1C1 = cells(y,1)
elseeif selection. autfilter field : =2, criterial:=x
cells("m7" ).select
end if
next i
et cela ne marche pas

j'ai réussi à convertir pdf en excel, maintenant je chercher à faire ceci:
Pour une même personne à qui et pour qui on a payé un certain montant pendant une période; écrire dans une colonne "solde" "ok" si la somme est comprise entre -2 et 2 et "not ok si elle est autre.

je ne sais pas comment attaché mon fichier

SVp aider moi
Expert Programmation

Kossivic, la loi régissant la cat' Programmation est stricte, mais c'est la loi !

  • Si tu veux publier du code, utilise la balise [ code].
  • Si tu as fini par trouver une solution, merci de la publier pour tous.
  • Ne confonds pas bureautique, Excel et programmation !

    Plus d'info dans le règlement.

    ___________________________________


    Pour répondre à ta question, même si c'est de la bureautique :sarcastic: 

    Dans la colonne "solde", mets une formule qui pourrait ressembler à ça en français : Si -2 <= Somme Et Somme <= 2 Alors Ok Sinon Not Ok.
    Et à ça en Excel :
    1. =Si(Et(-2<=Somme( );Somme( )<=2);"OK"; "Not Ok")

    la formule est juste je t'en remercie
    Mais il existe trois autres conditiions avant l'application de cette formule: ce sont
    1. pour une même personne (colonne nom) qui peut aller de 1 à 40 X nombre de personnes inscrites
    2. il est payé pendant une période donnée (colonne date)
    3. correspondant à différente source (colonne source)
    alors voir Si(Et(-2<=Somme( );Somme( )<=2);"OK"; "Not Ok" ) (colonne solde)
    le tout à répéter sur une boucle de N ligne d'où l'idée macro

    P.S. comment vous envoyer mon ficher?
    Expert Programmation

    On n'envoie pas de fichier. Un fichier peut contenir des virus, volontairement ou pas, donc pas d'échange de fichiers !!! :fou: 

    J'ai l'impression qu'il va te falloir aller voir en cat' Windows/Logiciel pour y apprendre à te servir d'Excel.

    Ecris la formule pour une ligne, puis avec la souris, tire sur le petit carré noir en bas à droite de la cellule pour étendre cette formule à plusieurs lignes.

    Je n'explique peut être pas bien mon cas.
    J'ai une niveau moyen en utilisation excel mais mon problème actuel dépasse ce niveau.
    je cherche à automatiser ce que je fait régulièrement pour gagner du temps.
    En effet dans une feuille où j'ai cumulé deux sources de données (une dépense et l'autre recette) relatif à des personnes , au cours d'une période donnée (janvier à décembre): je dois vérifier si j'ai reçu ce que j'ai payé pour une période.
    Donc je pense que tirer la formule faira varier les lignes et/ou colonne. Même si je fixe par "$" la somme ne correspond jamais au nombre de personnes selectionné.
    comment faire?

    Je pense que le plus simple pour effectuer cela serait de passer dans un troisième onglet ou tu reportes l'ensemble des noms de personne.

    Ensuite en utilisant la fonction BDSOMME tu devrais pouvoir récupérer l'ensemble des dépenses dans une colone, et les recettes dans une autre. Puis faire une magnifique différences et avec une mise en forme conditionnelle faire apparaitre en couleur les valeurs différents de 0.

    merci Freeman23,
    J'ai pensé à cela et j'ai été un peu plus loin avec un tableau croisée dynamique par nom; date; sources avec les montant (recette dépense).
    mais j'ai près de 42 000 lignes et je dois recommencer la verification sur 500 pages et le mois prochain rebelotte Pfffffffffffffffffffffffffffff.
    l'automatiser sera un gain de temps fou et différencier les réponses (0) des autres serait encore mieux.
    si vous le permetter voici à quoi ressemble mon tableau

    NOM DATE SOURCES MONTANT SOLDE

    aa l 01/2008 l recet l 2 l ok
    aa l01/2008 l dép l -2 l ok
    aa l02/2008 l recet l 1,5 l not ok
    aa l02/2008 l dép l -2 l not ok
    aa l02/2008 l recet l 0,3 l not ok
    bb
    bb
    bb
    etc...
    1. pour une même personne (colonne nom) qui peut aller de 1 à 40 X nombre de personnes inscrites
    2. il est payé pendant une période donnée (colonne date)
    3. correspondant à différente source (colonne source)
    alors écrire dans la colonne solde voir Si(Et(-2<=Somme( );Somme( )<=2);"OK"; "Not Ok" ) (colonne solde)
    le tout à répéter sur une boucle de N ligne d'où l'idée macro

    Lorsque j'enregistre en macro voici ce que je fais, En d'autre terme comment le généraliser et l'automamtiser?


    Sub pe()

    for i=1 to 42000
    Selection.AutoFilter Field:=1, Criteria1:="NEMCSIKANDREA"
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    Range("E11885:E20489").Select
    Range("E20489").Activate
    ActiveCell.FormulaR1C1 = "=IF(SUBTOTAL(9,R[-8604]C:R[-1]C)" , then
    Range("L11885").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Range("E20489").Select
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-8604]C:R[-1]C)"
    Range("L12977").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="avr.-04"
    Range("L12265").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="févr.-04"
    Range("L11484").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3
    Range("L11326").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=1, Criteria1:="NENDAKABIKAANGADAA"
    Range("E10678").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=6
    Range("E20489").Select
    Selection.ClearContents
    Range("E10678").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    ActiveWindow.SmallScroll Down:=-12
    Range("L11283").Select
    ActiveCell.FormulaR1C1 = "vide"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Range("L12138").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=11
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    Range("L11283").Select
    ActiveCell.FormulaR1C1 = "not"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Selection.AutoFilter Field:=3, Criteria1:="août-04"
    Selection.AutoFilter Field:=11, Criteria1:="="
    Selection.AutoFilter Field:=3, Criteria1:="juin-04"
    Range("L12559").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="août-04"
    Range("L13322").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="avr.-04"
    Range("L11784").Select
    ActiveCell.FormulaR1C1 = "not ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="févr.-04"
    Range("L10898").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="janv.-04"
    Range("L10678").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3
    Range("L12922").Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown

    next i
    End Sub

    [code]
    sub()
    for i=1 to 42000
    Selection.AutoFilter Field:=1, Criteria1:="NEMCSIKANDREA"
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    Range("E11885:E20489" ).Select
    Range("E20489" ).Activate
    ActiveCell.FormulaR1C1 = "=IF(SUBTOTAL(9,R[-8604]C:R[-1]C)" , then
    Range("L11885" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Range("E20489" ).Select
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-8604]C:R[-1]C)"
    Range("L12977" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="avr.-04"
    Range("L12265" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="févr.-04"
    Range("L11484" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3
    Range("L11326" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=1, Criteria1:="NENDAKABIKAANGADAA"
    Range("E10678" ).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=6
    Range("E20489" ).Select
    Selection.ClearContents
    Range("E10678" ).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    ActiveWindow.SmallScroll Down:=-12
    Range("L11283" ).Select
    ActiveCell.FormulaR1C1 = "vide"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Range("L12138" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=11
    Selection.AutoFilter Field:=3, Criteria1:="mars-04"
    Range("L11283" ).Select
    ActiveCell.FormulaR1C1 = "not"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="mai-04"
    Selection.AutoFilter Field:=3, Criteria1:="août-04"
    Selection.AutoFilter Field:=11, Criteria1:="="
    Selection.AutoFilter Field:=3, Criteria1:="juin-04"
    Range("L12559" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="août-04"
    Range("L13322" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="avr.-04"
    Range("L11784" ).Select
    ActiveCell.FormulaR1C1 = "not ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="févr.-04"
    Range("L10898" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3, Criteria1:="janv.-04"
    Range("L10678" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown
    Selection.AutoFilter Field:=3
    Range("L12922" ).Select
    ActiveCell.FormulaR1C1 = "ok"
    Selection.FillDown

    next i
    End Sub

    zeb, tu m'excuseras mais je ne comprends pas ce que tu me demandes de faire.
    La formule "=month()" renvoi le mois en numéro; c'est à dire oct/2007=10 et oct/2008=10 aussi. Or en terme de date ce ne sont pas la même chose. Alors quelle formule appliquer pour les différenier?
    Expert Programmation

    :??:  Quand t'ai-je demandé d'utiliser month() ?

    Bon sinon pour comparer oct. 2007 et oct. 2008, tu peux faire :
    month(date1) = month(date2) AND year(date1) = year(date2)


    __________________


    Et le modérateur me dit que tu as toujours un message privé à lire :o 

    En faite je ne cherche pas à comparer deux dates.
    j'ai créer une référence
    [code]
    [Range("E1") = "=month(d1)"]
    Dans la colonne "D" il y a les dates. je veux créer dans "E" la référence des dates afin de l'utililser plustard.
    il se fait que "month(01/10/2007)" donne 10; de même que "month(01/10/2008)" donne aussi 10

    comment differencier "month(01/10/2007)" de "month(01/10/2008" pour ne pas avoir 10 dans les deux cas. Je ne cherche donc pas à comparer les deux dates. ;) 
    Expert Programmation

    Kossivic, Merci de lire le règlement. Et tes messages.

    Comme cela fais 8 jours que mon dernier message reste non lu, je bloque ton accès jusqu'à ce que tu l'ais lu !

    Lassé par la pub ? Créez un compte