Récupérer Cellules dans un fichier Excel pour les copier dans un autre [Résolu]

Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
- - Dernière réponse : cs_Juju1988
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
- 29 juil. 2010 à 11:44
Bonjour,

Je suis actuellement en stage et amenée à développer en VBA. Je m'exerce un peu avant de me lancer sur le travail confié et j'aurais besoin de votre aide...

Je dispose d'un fichier "analyses.xls" et j'aimerai récupérer dans ce fichier la cellule se situant juste après celle contenant "N° lot" ...

Et ensuite copier le contenu de cette cellule dans mon fichier "essai vba.xls" à un emplacement précis.

J'essaie avec la fonction Find ... mais j'avoue que je bloque un peu beaucoup ...

Pourriez vous m'aider?

Merci d'avance,
Afficher la suite 

20/49 réponses

Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
J'ai essayé de mettre directement
Range("D2").Select
mais cela fait la même erreur.
Erreur d'éxecution 1001 Erreur définie par l'application ou par l'objet
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
bonjour,

remplace par cette ligne et rendez moi compte

Windows("essai vba.xls").RangeSelection(numero, Chr(Asc(lettre) + 1)) = True
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Alors j'ai plus de message d'erreur ... MAIS (il y a toujours un Mais lol) au lieu de me copier coller la cellule D2 (où se trouve le contenu de la cellule suivant la cellule comportant "N° lot") il me copie colle la cellule B4 de "analyses" dans "essai vba" ... (????) et dans essai vba dans la cellule H10 j'ai une valeur VRAI qui apparait ...
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
non non c'est pas ç la je me suis trempé de la ligne,

l'erreur qui s'affiche c'est au niveau du fichier analyse?? la selaction de la cellule à côté de la cellule trouver dans la methode find.

tu ma parlé de c'est pas le faite d'ajouter un 1 a une lettre, j'ai dis oui c'est pas possible mais on ajoute un 1 au code equivalant de la lettre pour avoir la lettre qui suit.
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Il n'y a plus d'erreurs qui d'affiche. Mais dans le fichier analyse j'ai bien une valeur qui est collé mais ce n'est pas la bonne c'est celle de la cellule B4 au lieu de E2 (cellule suivant celle contenant "N° lot") et j'ai un VRAI qui s'affiche aléatoirement dans le fichier analyse toujours ...
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
oui je sais j'ai signaler l'erreur en haut

bon tu as essai de selectionner une cellule directement range("E2").select est ce que ç donne tjrs l'erreur
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Alors j'ai fait :

Windows("essai vba.xls").RangeSelection("E2") = True


Cependant ça me met l'erreur :

Erreur d'execution 13 Incompatibilité de type
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
non c'est pas le bon syntaxe


alors voir ça
    newlettre = Chr(Asc(lettre) + 1)
    Windows("analyses.xls").Activate
    Range(newlettre & numero).Select
    Selection.Copy
    Windows("essai vba.xls").Activate
    Range("B1").Select
    ActiveSheet.Paste


exécute le code pas à pas et la ç dois donnée quel chose
Commenter la réponse de cs_abdellatyif
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
dont voila le code complet


Sub RecupNumLot()

Dim newlettre, lettre, s As String
Dim numero As Integer
Call Ouvre

With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108")
    Cells.Find(What:="n° lot:", After:=ActiveCell).Activate
    s = Replace(ActiveCell.Address, "$", "")
    For i = 1 To Len(s)
        If IsNumeric(Mid(s, i, i)) Then
            lettre = Mid(s, 1, i - 1)
            numero = Mid(s, i, Len(s))
        GoTo suit
        End If
    Next
suit:
    newlettre = Chr(Asc(lettre) + 1)
    Windows("analyses.xls").Activate
    Range(newlettre & numero).Select
    Selection.Copy
    Windows("essai vba.xls").Activate
    Range("B1").Select
    ActiveSheet.Paste
'    Windows("analyses.xls").Activate
'    ActiveWindow.Close
End With

End Sub
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Aaaa ça m'énerve cette fois ci (j'ai copié ton dernier code) ça me remet
Erreur d'execution 91 Variable objet ou variable de bloc With non définie


Est ce que le bloc se situe au bon endroit?
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
quelle ligne?????
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Cells.Find(What:="n° lot:", After:=ActiveCell).Activate
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
c normal y aucun text "N° lot:" trouvé dans le fichier excel
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Ben non pourtant "N° lot:" existe bien ...
Commenter la réponse de cs_Juju1988
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Et ce bloc on ne le met plus :

With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108")
            Set c = .Find("n° lot:", LookIn:=xlValues)
            
    If Not c Is Nothing Then ' si c n'est pas vide
        firstAddress = c.Address
       
    End If
End With
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
bon la ligne
 Cells.Find(What:="n° lot:", After:=ActiveCell).Activate

active la cellule qui contient le text "N° lot:" alors si ç marche pas c'est par ce que le programme n'a pas trouvé le texte.

moi j'ai crée deux fichier xls "essai vba" et "analyses" j'ai met le code dans le fichier essai vba et ç marche,


tu peu faire la même chose utiliser deux fichier xls et met la valeur "N° lot:" et le texte que tu veux le copier et lancé le code
Commenter la réponse de cs_abdellatyif
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
bien si tu n'as pas le message d'erreur mnt remplace la ligne suivante

    s = Replace(firstAddress, "$", "")
Commenter la réponse de cs_abdellatyif
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
Pareil même erreur With ...
Commenter la réponse de cs_Juju1988
Messages postés
70
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
21 juin 2011
0
Merci
J'ai remplacé la ligne et ça me met la même erreur, et pareil si je fais ça avec deux autres fichiers
Commenter la réponse de cs_Juju1988
Messages postés
34
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2010
0
Merci
le fichier analyse doit etre fermer mon ami

j'ai fais toutes les possibilité des erreur si tu as le message "le fichier xls est deja ouverte" automatiquement tu aura un message d'erreur. dans le bloque with
Commenter la réponse de cs_abdellatyif