Couper coller a partir d'une recherche via la boite de Dialogue

dianbobo

Expert
bonjour a tous,

voila j'essaie de faire une macro qui consiste a aller dans la feuille ''Global count'' , faire une recherche. si le numero que je rentre dans la boite de dialogue existe alors la ligne a laquelle ce numero se trouve doit etre coupee et etre colle a la suite dans la feuille ''SHIP'' ( c'est a dire a la premiere ligne vide dans la feuille ''ship'').

voici mon code
Code:
Sub Item_ship()
' macro pour rechercher a partir d'une boite de dialogue les ligne shipper
'creer une boite de dialogue pour faire une recherche
'tranferer les elements trouver dans la feuille ship

    Dim resultat As Long
    Dim i As Long
        i = InputBox("Numero de serie?:")  'La variable reçoit la valeur entrée dans l'InputBox
   
            If i <> "" Then 'Si la valeur est différente de 
                 'couper la ligne
     
                Worksheets("Global count").Range("A" & i & ":AQ" & i).Cut_
                Worksheets("SHIP").Range ("A" & Sheets("SHIP").Range("A65536").End(xlUp).Row + 1)
        
            End If

End Sub

merci de votre aide
 

drul

Obscur pro du hardware
Staff
@GSbattleman: c'est du VBA dans Excel
@dianbobo: et ça vient d'ou ?
 

drul

Obscur pro du hardware
Staff
Euh ... i est un long... par contre inputbox et "" eu sont des strings ...
 

dianbobo

Expert
l'erreur vient de cette ligne :

Code:
Worksheets("Global count").Range("A" & i & ":AQ" & i).Cut_
 

drul

Obscur pro du hardware
Staff
Salut,
as-tu corrigé le type de "i" ?
Ensuite, il faut un espace entre "cut" et "_". De plus la suite de l'instruction DOIT se trouver à la ligne suivante.
Code:
Worksheets("Global count").Range("A" & i & ":AQ" & i).Cut _
Worksheets("SHIP").Range("A" & Sheets("SHIP").Range("A65536").End(xlUp).Row + 1)

Edit: c'est se satané BBCode parser qui nous rajoute une ligne vide.
 

dianbobo

Expert
Bonjour a tous,
j'ai reecris le code comme ci-dessous
Code:
Sub Item_ship()
' macro pour rechercher a partir d'une boite de dialogue les ligne shipper
'creer une boite de dialogue pour faire une recherche
'tranferer les elements trouver dans la feuille ship
    Dim i As String
        i = InputBox("Numero de serie?:")  'La variable reçoit la valeur entrée dans l'InputBox
   
            If i <> "" Then 'Si la valeur est différente de "" 'couper la ligne i. et la coller dans la feuille SHIP a la premiere ligne vide.
     
                Worksheets("Global count").Range("A" & i & ":AQ" & i).Cut _
                Worksheets("SHIP").Range("A" & Sheets("SHIP").Range("A65536").End(xlUp).Row + 1)
        
            End If

End Sub

je n'ai plus d'erreur mais il ne fonctionne pas .

NB: La ma boite de dialogue me demande un numero, alors quand je rentre le numero la verification de son existence se fait a la colonne A de la feuille '' Global count'' si oui, la ligne entiere doit etre coupee et etre collee dans la feuille ''ship''
 

drul

Obscur pro du hardware
Staff
Et tu la fait ou ta vérification ?
ici tu coupes juste la ligne A & i, aucune vérification ou recherche n'est effectué ...
Le numéro est-il forcément unique ou peut-il y avoir plusieurs lignes avec le même numéro ?
Je t'invite à faire une boucle du haut vers le bas (question subsidiaire à 2 pts: pourquoi du bas vers le haut ?) pour contrôler l’existence de ton numéro.
 

dianbobo

Expert
Bonjour,

Normalement, je devrais faire la verification grace a la boite de dialogue.
 

drul

Obscur pro du hardware
Staff
Non la boîte de dialogue, test juste un moyen de saisie, la vérification doit être effectué d'une autre manière (boucle, emploi de la fonction de recherche, ou autre).
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 100
Membres
1 586 287
Dernier membre
lucilleguffey
Partager cette page
Haut