Besion d'aide sur la copie en VB avec une condition SVP

Résolu/Fermé
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015 - Modifié par Whismeril le 22/02/2015 à 06:19
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015 - 22 févr. 2015 à 15:22
Bonjour,
j'ai fais un code pour que je puisse copier le contenu des cellule d'une colonne à une condition que les valeurs des cellule seront numérique; et voila le code :

Sub Tst3()
Dim LastRowA As Long, cA As Range
Dim i As Long
    LastRowA = Feuil4.Range("J" & Rows.Count).End(xlUp).Row
    i = 1
 
    Application.ScreenUpdating = False
    Feuil5.Columns("C:C").ClearContents
    For Each cA In Feuil4.Range("J1:J" & LastRowA)
        If cA.Value <> "" Then
        If IsNumeric(cA.Value) = True Then
            Feuil5.Cells(i, 3) = cA.Value
            i = i + 1
        End If
        End If
    Next cA
    Application.ScreenUpdating = True
End Sub


alors là tous marche bien les valeurs numérique de la colonne J de la feuille 4 se déplacent à la colonne C de la feuille 5. Mais le problème c'est je veux que même les valeurs de la colonne I de la feuille 4 ce déplaceront, au même temps que les valeurs de la colonne J, à la colonne B de la feuille 5.
est ce qu'il y a quelqu'un qui peu m'aider à le faire car j'ai bloqué, et je ne suis qu'un débutant, et ça sera gentil de votre part.

EDIT: Ajout de la coloration syntaxique.

A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 févr. 2015 à 07:24
Bonjour,
je veux que même les valeurs de la colonne I de la feuille 4 ce déplaceront, au même temps que les valeurs de la colonne J, à la colonne B de la feuille 5.

Que veux tu dire ?
0
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015
22 févr. 2015 à 13:46
Bonjour, merci pour la réponse.
je veux dire que lorsque le VB trouve la valeur de cA voulu lors du test, au lieu de copier seulement la cellule trouver, il copiera aussi la cellule de la colonne qui est juste accoté de la première cellule.

donc à la fin du programme j'aurai la cellule de la colonne testée et une autre cellule qui est à la même ligne de celle-la.

j'espère que mon problème sera bien claire. merci.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
22 févr. 2015 à 14:15
Bonjour,

Sub Tst3()
Dim LastRowA As Long, cA As Range
Dim i As Long
Dim cB, val
    LastRowA = Feuil4.Range("J" & Rows.Count).End(xlUp).Row
    i = 1
  Application.ScreenUpdating = False
    Feuil5.Columns("C:C").ClearContents
    For Each cA In Feuil4.Range("J1:J" & LastRowA)
      If cA.Value <> "" Then
        If IsNumeric(cA.Value) = True Then
     cB = cA.Address
     cB = Replace(cB, "$J", "$I")
    val = Range(cB).Value
    Feuil5.Cells(i, 3) = cA.Value
           Feuil5.Cells(i, 2) = val
            i = i + 1
        End If
        End If
    Next cA
 Application.ScreenUpdating = True
End Sub

0
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015
22 févr. 2015 à 14:39
Bonjour, merci pour la réponse
ça n'a changé rien il me donne le même résulta.
0
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015
Modifié par shakti14789 le 22/02/2015 à 15:07
quand je test en débogage pas à pas je trouve que cA.Adress et cB change quand le test est True mais val = Range(cB).Value reste toujours vide.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
22 févr. 2015 à 15:06
Cela fonctionne chez moi. Il faut bien sur que tu sois positionné sur ta Feuille4.
essaie ceci si tu n'as pas trop de ligne:

Sub Tst3()
Dim LastRowA As Long, cA As Range
Dim i As Long
Dim cB, val
    LastRowA = Feuil4.Range("J" & Rows.Count).End(xlUp).Row
    i = 1
  Application.ScreenUpdating = False
    Feuil5.Columns("C:C").ClearContents
    For Each cA In Feuil4.Range("J1:J" & LastRowA)
      If cA.Value <> "" Then
        If IsNumeric(cA.Value) = True Then
     cB = cA.Address
     MsgBox cB
     cB = Replace(cB, "$J", "$I")
     MsgBox cB
    val = Range(cB).Value
    MsgBox val
    Feuil5.Cells(i, 3) = cA.Value
           Feuil5.Cells(i, 2) = val
            i = i + 1
        End If
        End If
    Next cA
 Application.ScreenUpdating = True
End Sub

0
shakti14789 Messages postés 5 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 22 février 2015
22 févr. 2015 à 15:22
mille merci, tu avais raison je n'été pas bien positionner dans ma feuille, car j'ai pas fais attention au positionnement, maintenant les deux codes sont fonctionnels.
merci pour ton aide.
0