Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1373 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel 07 / Copier coller dans des sheets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel 07 / Copier coller dans des sheets

n°2049465
didier1809
${citation_perso}
Posté le 16-01-2011 à 14:50:49  profilanswer
 

:hello:  
 
C'est vraiment bête, mais je ne m'en sort pas:
 
J'aimerai faire une recherche sur un terme et effectuer un traitement lorsque ce terme est trouvé.
 
J'arrive bien à parcourir le tableau et à trouver les x et y des termes en question  :o  
 
Par contre, impossible de récuperer le texte ou de faire un copier coller...
 
Voici le code:
 

Public Function traitement(l As Long, c As Integer)
    Dim cellcontent As String
    cellcontent = ActiveSheet.Cells(c, l).Value
    traitement = "[" & c & "," & l & "] " & cellcontent & vbCrLf
     
    Range(Cells(c, l), Cells(c + 10, l + 4)).Select
    Selection.Copy
    Sheets("Sheet1" ).Select
    Range("B" & l).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Function


 
La valeur de retour vaut par exemple "[2, 30] "
 
La cellule est vide alors que la recherche est fructueuse:
 

With Sheets("Indiv" )
    l = 1: c = 1
    Do                      ' recherche
        Set sel = .Cells.Find(What:=rech, after:=.Cells(l, c), _
            LookIn:=xlValues, LookAt:=xlPart, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, MatchCase:=False)
        If sel Is Nothing Then Exit Do
        If sel.Column <= c And sel.Row <= l Then Exit Do
        c = sel.Column
        l = sel.Row
        msg = msg & traitement(l, c)
        n = n + 1       ' élément trouvé : traitement
    Loop
End With
MsgBox n & " éléments trouvés" & vbCrLf & msg


 
Est-ce que vous avez une idée ??
 
Je suis un peu perdu en vba, je suis plus habitué à faire du Java que du vba :(


---------------
.
mood
Publicité
Posté le 16-01-2011 à 14:50:49  profilanswer
 

n°2049885
SuppotDeSa​Tante
Aka dje69r
Posté le 18-01-2011 à 14:51:55  profilanswer
 

Tes variables c et l sont declarées comment ?
 
Tu peux pas faire de "copier" ; "select" etc. dans une fonction que tu appelles dans Excel avec =traitement()
Le plus "simple" est de passer par les evenement de feuille_change
 
En gros :
 
Si le texte dans la cellule que je viens de saisir contient "=traitement" Alors
    Selectionner la cellule
    La copier
    Etc.
 
 
Explique plus explicitement ce que tu souhaites faire, je te filerai un coup de main :jap:

Message cité 1 fois
Message édité par SuppotDeSaTante le 18-01-2011 à 14:55:49

---------------
Soyez malin, louez entre voisins !
n°2049917
didier1809
${citation_perso}
Posté le 18-01-2011 à 15:45:04  profilanswer
 

SuppotDeSaTante a écrit :

Tes variables c et l sont declarées comment ?
 
Tu peux pas faire de "copier" ; "select" etc. dans une fonction que tu appelles dans Excel avec =traitement()
Le plus "simple" est de passer par les evenement de feuille_change
 
En gros :
 
Si le texte dans la cellule que je viens de saisir contient "=traitement" Alors
    Selectionner la cellule
    La copier
    Etc.
 
 
Explique plus explicitement ce que tu souhaites faire, je te filerai un coup de main :jap:


 
Merci :-)
 
alors, tout bêtement, j'ai un fichier exel avec une prémière sheet qui contient une répetition de ceci:
 


texte fixe
- ligne vide-
Tableau sur N colonnes et M Lignes


 
Et j'aimerai copier / coller ces tableaux, faire un tableau par sheet par exemple.


---------------
.
n°2049925
SuppotDeSa​Tante
Aka dje69r
Posté le 18-01-2011 à 16:04:11  profilanswer
 

En fait ta fonction traitement te sert juste a mettre des []
 

Citation :

Sub didier1809()
With Sheets("Indiv" )  
    l = 1: c = 1  
    Do                      ' recherche  
        Set sel = .Cells.Find(What:=rech, after:=.Cells(l, c), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)  
        If sel Is Nothing Then Exit Do  
        If sel.Column <= c And sel.Row <= l Then Exit Do  
        c = sel.Column  
        l = sel.Row
         
       cellcontent = .Cells(c, l).Value  
        traitement = "[" & c & "," & l & "] " & cellcontent & vbCrLf

 
        msg = msg & traitement(l, c)  
 
       Range(Cells(c, l), Cells(c + 10, l + 4)).Select  
        Selection.Copy  
        Sheets("Sheet1" ).Select  
        Range("B" & l).Select  
        ActiveSheet.Paste  
        Application.CutCopyMode = False
 
         
        n = n + 1       ' élément trouvé : traitement  
    Loop  
End With  
MsgBox n & " éléments trouvés" & vbCrLf & msg
 
End Sub

Message cité 1 fois
Message édité par SuppotDeSaTante le 18-01-2011 à 16:10:53

---------------
Soyez malin, louez entre voisins !
n°2049965
didier1809
${citation_perso}
Posté le 18-01-2011 à 18:21:32  profilanswer
 

SuppotDeSaTante a écrit :

En fait ta fonction traitement te sert juste a mettre des []
 

Citation :

Sub didier1809()
With Sheets("Indiv" )  
    l = 1: c = 1  
    Do                      ' recherche  
        Set sel = .Cells.Find(What:=rech, after:=.Cells(l, c), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)  
        If sel Is Nothing Then Exit Do  
        If sel.Column <= c And sel.Row <= l Then Exit Do  
        c = sel.Column  
        l = sel.Row
         
       cellcontent = .Cells(c, l).Value  
        traitement = "[" & c & "," & l & "] " & cellcontent & vbCrLf

 
        msg = msg & traitement(l, c)  
 
       Range(Cells(c, l), Cells(c + 10, l + 4)).Select  
        Selection.Copy  
        Sheets("Sheet1" ).Select  
        Range("B" & l).Select  
        ActiveSheet.Paste  
        Application.CutCopyMode = False
 
         
        n = n + 1       ' élément trouvé : traitement  
    Loop  
End With  
MsgBox n & " éléments trouvés" & vbCrLf & msg
 
End Sub



 
 
Ca me retourne des [] oui, mais la 2e partie en rouge devrait faire des copier coller non ?


---------------
.
n°2050042
SuppotDeSa​Tante
Aka dje69r
Posté le 18-01-2011 à 23:24:05  profilanswer
 

Ui.
Si c'est possible, envoie le fichier...


---------------
Soyez malin, louez entre voisins !
n°2050071
didier1809
${citation_perso}
Posté le 19-01-2011 à 07:23:46  profilanswer
 

SuppotDeSaTante a écrit :

Ui.
Si c'est possible, envoie le fichier...


 
http://www.4shared.com/file/YPL6mnam/pour_macro.html
 
Est-ce que tu y as accès ?


---------------
.
n°2050128
SuppotDeSa​Tante
Aka dje69r
Posté le 19-01-2011 à 10:28:17  profilanswer
 

Non, restriction au bureau inside...
 
Il y a mon mail dans mon profil ;)


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel 07 / Copier coller dans des sheets

 

Sujets relatifs
[VBa Excel]Programme gestion d'absence[VBA access] Copie de graphique Access vers Excel
[VBA Excel 2003 - débutant] Macro et renommage d'un classeur ExcellPb exportation de données vers feuille excel
Prgm VBA et ou Excel - RechercheV ... recherche du nom le plus longVBA Excel 2003 colorier cellule RGB
VBA Excel : récupérer des termes de l'instruction[VBA - Excel] Vlookup vers un autre fichier
Req sur 3 fichiers Excel - Comment s'utilise RechercheV en VBA svp ?Convertir un tableau en liste de données VBA sous Excel
Plus de sujets relatifs à : Excel 07 / Copier coller dans des sheets


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR