VBA problème syntaxe

A

Asperule

Guest
Bonsoir à toutes et à tous!

La situation est la suivante : Nous voudrions transférer une donnée contenue dans une case d'une feuille Excel nommée CalculHT, vers une case d'une autre feuille nommée Commande et sur laquelle est basée le code.
La macro consiste à transférer un truc en D6 sous le mot désignation (donc en B10) et qu'au prochain appel de la macro, la nouvelle valeur du truc à transférer vienne se mettre une case encore en dessous de désignation(donc en B11) et ainsi de suite.
Notre ébauche de code est en dessous

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'
Dim Reponse As Integer
Dim Bidule As String
'
With WorksheetFunction
Bidule = .Match('Désignation', Sheets('Commande').Rows(9), 0)
End With
Reponse = MsgBox('Confirmes-tu le transfert de données?', vbYesNo)
'
If Reponse = vbNo Then
MsgBox ' Tant pis'
End If
If Ligne = 30 Then
MsgBox ' Tableau Plein'
End If
'
If Reponse = vbYes Then
Ligne = Sheets('Commande').Cells(29, Bidule).End(xlUp).Row + 1
With Sheets('Commande')
.Cells(Ligne, B) = Range('D6')
End With
End If
End Sub

Lors du débogage, une erreur survient à l'instruction : 'Ligne = Sheets('Commande').Cells(29, Bidule).End(xlUp).Row + 1'

On vous joint le fichier Excel.
Merci beaucoup d'avance du temps accordé

Aspérule. [file name=fichier_excel.zip size=9000]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/fichier_excel.zip[/file]
 

Pièces jointes

  • fichier_excel.zip
    8.8 KB · Affichages: 14
  • fichier_excel.zip
    8.8 KB · Affichages: 14
  • fichier_excel.zip
    8.8 KB · Affichages: 14

Creepy

XLDnaute Accro
Bonsoir le Forum, Asperule,

Ci joint le code corrigé.

Sauf erreur de ma part (en faites je ne suis pas très sûr ! lol) tu ne peux utiliser le END(xlup) qu'avec range et pas avec Cell.

Ensuite dans la ligne du dessous tu avais mis .cells(ligne,B) Erreur !!! C'est ligne,2 lol.

une etourderie je pense car tu l'avais bien fait au dessus !

@+

Creepy [file name=fichier_excel_20051219230055.zip size=10267]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/fichier_excel_20051219230055.zip[/file]
 

Pièces jointes

  • fichier_excel_20051219230055.zip
    10 KB · Affichages: 14

Abel

XLDnaute Accro
Bonsoir Asperule,

'Bidule' est défini comme une chaine de caractère (as string) donc forcément, Cells(29,Bidule) ne fonctionne pas.

Défini le comme 'rien' : Dim Bidule.
Il sera par défaut un 'Variant', soit texte, soit numérique. Comme la première valeur qu'il rencontre est du numérique, la ligne incriminée passera toute seule.

Deuxième chose, un peu plus bas, corrige ceci :
Code:
       With Sheets('Commande')
            .Cells(Ligne, B) = Range('D6')
        End With

Cells (Ligne, B). Tourne encore à c't'heure ci la ligne B. Ouarf !
Pardon, elle était facile.
Je suppose qu'il s'agit de :
Code:
       With Sheets('Commande')
            .Cells(Ligne, Bidule) = Sheets('Calcul HT').Range('D6')
        End With

Bon courage

Abel.

Edition :
Oups !
Pardon Creepy. Pas frais.

Message édité par: Abel, à: 19/12/2005 23:08
 
A

Asperule

Guest
Bonjour à Toute et à tous.

Merci à tous pour votre participation mais ça na pas l'air de marcher chez moi. :eek: C'est pourquoi je reformule ma question, avec un nouveau fichier joint, au début du Forum.

En vour remerciant d'avance pour tout l'interet que vous porter sur le travail d'Excel.

Salutation
Asperule.
 

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 823
dernier inscrit
ben talha redouane