Si colonne vide alors ligne suivante
Salut tout le monde,
je suis entrain de faire des test de macro, mais je suis (encore) face à un probleme.
Dans une macro de mise en forme, il y a une automatisation de conversion de données. Or le problème est qu'il y a pas toujours des données dans ces colonnes; alors excel "débogge"
Voila ma macro
Sub Exemple ()
Range("BL1:BL" & dlg).TextToColumns Destination:=Range("BL1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#"
Range("BQ1:BQ" & dlg).TextToColumns Destination:=Range("BQ1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#"
Range("BV1:BV" & dlg).TextToColumns Destination:=Range("BV1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#"
Range("CA1:CA" & dlg).TextToColumns Destination:=Range("CA1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#"
Range("CF1:CF" & dlg).TextToColumns Destination:=Range("CF1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#"
'Range("H:H,W:W,Y:Y,AA:AB,AD:AD,AF:AG,AI:AI,AK:AL,AN:AN,AP:AQ,AS:AS,AU:AV,AX:AX,AZ:BA,BC:BC,BE:BF,BH:BH,BJ:BK,BM:BM,BO:BP,BR:BR,BT:BU,BW:BW,BY:BZ,CB:CB,CD:CE,CG:CG,CI:CJ,CL:CL").Delete Shift:=xlToLeft
End subJe cherche une solution pour faire en sorte que, si la colonne sélectionnée est vide, alors la macto passe à la suivante.
par exemple: la colonne BV est vide, au lieu de bloquer, la macro voit que la colonne est vide, elle passe à la conversion de CA.
C'est possible que ce soit quelque chose comme "if row(bv1:bv).empty then next ... "
Bref vous l'avez compris, je ne suis pas trés fort pour le VBA ...!
Est ce que c'est possible de faire ca? et est ce que quelqu'un pourrait m'aider?
Merci d'avoir lu mon message. A bientot
Bonjour
Deux méthodes
Pour chaque colonne compter si des données existent
If Application.CountA(Range("BL1:BL" & dlg)) > 0 Then
' Traitement colonne BL
End If
If Application.CountA(Range("BQ1:BQ" & dlg)) > 0 Then
' Traitement colonne BQ
End If
' etc
' etc
' etcOu alors en début
On Error Resume Next
' Traitement colonne ...
' Traitement colonne ...
' et en fin de tous les traitements si il y a d'autre code après mettre
On Error Goto 0