Programmation VBA

Fermé
obelix - 6 oct. 2007 à 06:42
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 - 6 oct. 2007 à 15:52
Bonjour,
je souhaite automatiser la création un nouveau tableau excel par le biais vba, a partir une extraction d'information rapatriée dans excel :
pour cela , j'ai besoin de compter le nombre de ligne (x)non vide , à partir de la lgne 8. il me faut copier les valeurs de la colonne B de la ligne 8 à ligne (8+x)de la feuille 1 et coller ces valeurs sur la feuille 2 à partir de la ligne 16 sur la colonne F. puis copier la colonne D de feuille 1 de la ligne (8 à 8+x-3) et coller les valleurs sur la feuille 2 dans la colonne G à partir de la ligne 16 et convertir ces valeurs en nombre.
je vous remercie d'avance de vous pencher sur ce probléme et de me coconseiller lpour la réalisation de mon projet

2 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
6 oct. 2007 à 10:42
Bonjour,

Pourquoi vouloir utiliser vba pour qu'une cellule soit égale à une autre ? mettre dans F16 =feuil1!B8 dans ta 2nde feuille n'est pas suffisant ?

Convertir valeur en nombre...
si c'est 5 (le caractere) la conversion se fait toute seule. A la limite tu fais = 'ta_chaine_representant_un_nombre' * 1 pour forcer la conversion. Maintenant si ton nombre est inclu dans une chaine et que tu désires l'extraire il faudrait que l'on sache à quoi ressemble cette chaine

eric
0
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
6 oct. 2007 à 15:52
Bonjour obelix,

Voici une façon de faire :

Sub Copie()
Dim Dlg As Long ' Variable représentant la dernière ligne du tableau

' Récupère le N° de la dernière ligne du tableau
Dlg = Sheets("Feuil1").Range("B65536").End(xlUp).Row

' Recopie les cellules dans la feuille 2
With Sheets("Feuil2")
  For lg = 8 To Dlg
    .Cells(lg, 6) = Sheets("Feuil1").Cells(lg, 2)
    If lg <= Dlg - 3 Then
      .Cells(lg, 7) = Sheets("Feuil1").Cells(lg, 4)
    End If
  Next
End With

End Sub


Je pense que les commentaires se suffisent à eux-mêmes.
Cette macro est à placer dans un module de code. Tu peux ensuite l'appeler par un événement de ton choix.

Espérant t'avoir aidé,

Cordialement.
0