HELPPPPPP sur VBA!!!!!!!!!!!!!!!!!

Jean2208 Messages postés 19 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 22 septembre 2009 - 16 janv. 2007 à 11:29
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 17 janv. 2007 à 00:14
Bonjour à Tous,

Ci-dessus le début du code que j'essaie d'écrire en m'inspirant de ce que j'ai pu trouver un peu partout.


J’ai une feuille "Details Mvt" que je screen à partir de la cellule B5  jusqu'a arriver à la première cellule vide ensuite je vais dans un autre onglet "DB"....


C'est à ce moment que je me retrouve bloqué.


Je voudrais une fois dans l'onglet "DB" pouvoir sélectionner une colonne donnée, "Colonne Z par exemple", la screener sur toute les lignes non vides et repérer tous les chiffres <> de 0.


Qd ces chiffres <> de 0 st repérés, pouvoir sélectionner et copier chaque ligne de la colonne C à K par exemple et les coller dans mon onglet "Details Mvt"


J'espère avoir été claire.

Merci d'avoir pour votre aide.

Jagger.





<colgroup>
<col style=\"WIDTH: 60pt\" span=\"3\" width=\"80\" />
</colgroup>

----

Sub Mvt(),
 ,
 ,

----

Application.ScreenUpdating = False,

----

Sheets("Details Mvt").Select,

----

    Dim j As String

,
 ,

----

    Range("B5").Select

,
 ,

----

    While ActiveCell <> ""

,
 ,

----

        ActiveCell.Offset(1, 0).Select

,

----

    Wend

,
 ,
 ,

----

        j = ActiveCell.Address

,

----

        Sheets("DB").Select


 

3 réponses

Jean2208 Messages postés 19 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 22 septembre 2009
16 janv. 2007 à 13:52
Rebonjour,

J'ai reussi à avancer sur le code :

le voici :
Sub Detail_Mvt()
Application.ScreenUpdating = False
Sheets("Detail Mvt").Select
    Dim j As String    
    Range("B2").Select
    While ActiveCell <> ""
        ActiveCell.Offset(1, 0).Select
    Wend
        j = ActiveCell.Address        
        Sheets("DB").Select        
        Dim i As String        
       Range("F2").Select
      While ActiveCell = 0
      ActiveCell.Offset(1, 0).Select
       Wend
        i = ActiveCell.Address        
        ActiveCell("A:C").Select        
         Selection.Copy
       Sheets("Detail Mvt").Select
    Range(j).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False 
        
     End Sub


Mon seul problème maintenant c'est que je n'arrive pas à écrire la chose suivante : <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Maintenant que J'ai trouvé dans la colonne F les chiffres différents de 0.


Alors, toujours sur la même ligne je voudrais sélectionner les colonne A jusqu'à D (qui contiennent des informations textes) et les copier.


Exemple :






intitulé

,

intitulé

,

intitulé

,

intitulé

,

total1

,

total1

,

----

hdc DB

,
hdc DB

,
hdc DB

,
hdc DB

,
0

,
0

,

----

hdc DB

,
hdc DB

,
hdc DB

,
hdc DB

,
0

,
0

,

----

hdc DB

,
hdc DB

,
hdc DB

,
hdc DB

,
-1

,
-1





Si vous avez une solution pour moi, je vous remercie Beaucoup.


Merci Merci Merci



 




 
0
Jean2208 Messages postés 19 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 22 septembre 2009
16 janv. 2007 à 14:49
J'ai reussi a prendre la cellule à coté mais tjrs pas plusieurs cellule.
Autre pétin que j'ai remarqué, c'est que dès la marco trouve une valeur il va l'écrire sans faire de boucle sur toute la colonnes.
Par exemple si j'ai 0 en "F1", 1 en "F2" puis puis 3 en "F5".
il ne prendra les infos que dans "F1".

Merci!

Voici mon code :
Sub Detail_Mvt()Application.ScreenUpdating = False
Sheets("Detail Mvt").Select
    Dim j As String    
    Range("B2").Select
    While ActiveCell <> ""
        ActiveCell.Offset(1, 0).Select
    Wend
        j = ActiveCell.Address        
        Sheets("DB").Select        
        Dim i As String        
       Range("F2").Select
      While ActiveCell = 0
      ActiveCell.Offset(1, 0).Select
       Wend
        i = ActiveCell.Address
        ActiveCell.Offset(0, -1).Select        
         Selection.Copy
       Sheets("Detail Mvt").Select
    Range(j).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
       
     End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 janv. 2007 à 00:14
Salut,
Je pense que le mieux est que tu expliques exactement ce que tu cherches à copier.
Je comprend le principe, mais dans un message tu parles de la colonne Z et des cellules de C à K, puis dans un autre, c'est la colonne F et les cellules A à D...

Un exemple, si tu veux copier les cellules A à D lorsque la cellule F sur la même ligne est à 0
Dim i as long
For i = 2 to NombreDeLignes              'À déterminer (voir plus bas...)
    If Range("F" & i) = 0 then                'On a trouvé un 0
        Range("A" & i & ":D" & i).copy   'On copie les cellules de A à D de cette ligne
       'Aller coller la sélection où il faut
    End if
Next

Pour trouver la dernière ligne, tu peux faire une recherche sur le site, il y a des tas de codes utilisant la méthode Find, rapide et efficace.

MPi
0
Rejoignez-nous